- 浏览: 610148 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
kangh:
转载的也拿出来 都不试一下 完全错误
Nginx+ffmpeg的HLS开源服务器搭建配置及开发详解 -
wangtxlz:
#cd builders/cmake#cmake .系统提示命 ...
crtmpserver流媒体服务器的介绍与搭建 -
hnraysir:
支持支持支持
手机Android音视频采集与直播推送,实现单兵、移动监控类应用 -
wuent:
把web服务器和php框架绑定到一起?真不建议这样。。。
Swoole(PHP高级Web开发框架) -
wuent:
有更详细的性能比较吗?php,python,java
PHP中的(伪)多线程与多进程
php类代码中常看到"::"的操作符,这个是作用域限定操作符,是用一个双冒号"::"表示,它用来置顶类中不同作用域的级别。左边是作用域右边是访问作用域的成员。
在php中定义的作用域有self和parent两种(在php6中提供了static作用域)。
self:表示当前类的作用域,与this不同的是它不表示类的某个特定实例,在类之外的代码中不能使用self,而且它不能识别自己在继承中层次的位置。也就是说,当在扩展类中使用self时,它调用的不是父类的方法,而是扩展类的重载的方法。
parent:表示当前类父类的作用域,其余的跟self特性一样。
举例说明php双冒号::操作符:
- <?php
- class forasp{
- static $url="http://blog.csdn.net/abandonship";
- static $webname = "PHP学习之双冒号的用法";
- public function writeurl(){
- echo self::$url;//调用自己的内容
- }
- public function writewebname(){
- echo "测试子类调用父类内容";
- }
- }
- class cn extends forasp{
- function father(){
- parent::wirtewebname();
- }
- }
- $a = new forasp();//实例化父类
- $a->writeurl();//调用自身内容
- $b = new cn();
- $b->writewebname();//调用父类内容
- ?>
在调用静态方法中也可以使用::来调用类中的静态方法或者属性,这样可以减少资源使用,因为每个类的实例都会占有一部分资源。
php6中提出static::作用域,是我们不再需要self::和parent::。希望指向最终的实现功能的类时,就用static::,这个限定符会在代码执行前立即计算出继承层中最后那个类的成员,这一过程叫做延迟绑定。
“双冒号操作符”也或称为“作用域限定操作符”(Scope Resolution Operator)可以访问静态、const和类中重写的属性与方法。
在类定义外使用的话,使用类名调用。在PHP 5.3.0,可以使用变量代替类名。
Program List:用变量在类定义外部访问
- <?php
- class Fruit {
- const CONST_VALUE = 'Fruit Color';
- }
- $classname = 'Fruit';
- echo $classname::CONST_VALUE; // As of PHP 5.3.0
- echo Fruit::CONST_VALUE;
- ?>
Program List:在类定义外部使用双冒号(::)
- <?php
- class Fruit {
- const CONST_VALUE = 'Fruit Color';
- }
- class Apple extends Fruit
- {
- public static $color = 'Red';
- public static function doubleColon() {
- echo parent::CONST_VALUE . "\n";
- echo self::$color . "\n";
- }
- }
- Apple::doubleColon();
- ?>
程序运行结果:
Fruit Color Red
Program List:调用parent方法
- <?php
- class Fruit
- {
- protected function showColor() {
- echo "Fruit::showColor()\n";
- }
- }
- class Apple extends Fruit
- {
- // Override parent's definition
- public function showColor()
- {
- // But still call the parent function
- parent::showColor();
- echo "Apple::showColor()\n";
- }
- }
- $apple = new Apple();
- $apple->showColor();
- ?>
程序运行结果:
Fruit::showColor()
Apple::showColor()
Program List:使用作用域限定符
- <?php
- class Apple
- {
- public function showColor()
- {
- return $this->color;
- }
- }
- class Banana
- {
- public $color;
- public function __construct()
- {
- $this->color = "Banana is yellow";
- }
- public function GetColor()
- {
- return Apple::showColor();
- }
- }
- $banana = new Banana;
- echo $banana->GetColor();
- ?>
程序运行结果:
Banana is yellow
Program List:调用基类的方法
- <?php
- class Fruit
- {
- static function color()
- {
- return "color";
- }
- static function showColor()
- {
- echo "show " . self::color();
- }
- }
- class Apple extends Fruit
- {
- static function color()
- {
- return "red";
- }
- }
- Apple::showColor();
- // output is "show color"!
- ?>
程序运行结果:
show color
发表评论
-
nginx、php-fpm默认配置与性能–TCP socket还是unix domain socket
2015-04-02 11:14 1472前几天看到一篇博客,提到php所在服务器在大并发情况下,频 ... -
使用socket方式连接Nginx优化php-fpm性能
2015-04-01 13:49 0Nginx连接fastcgi的方式有 ... -
PHP中include和require的区别详解
2015-04-01 08:32 01、概要 require()语句的性能与includ ... -
PHP 中cookie 和 session 的分析
2015-03-31 12:33 0HP 中cookie 和session 的分析 ... -
php 经典的算法题你懂的
2015-03-31 12:31 0有5个人偷了一堆苹果,准备在第二天分赃。晚上,有一人遛出来, ... -
PHP最常用的2种设计模式工厂模式和单例模式介绍
2015-03-31 12:26 0简单来说,PHP单例模式就是一个功能用一个类来实现,并且在整 ... -
PHP 数据类型
2015-03-31 12:23 0PHP 数据类型 PHP 支持八种原始类型(type)。 ... -
PHP mcrypt启用、加密以及解密过程详解
2015-03-30 11:32 1463Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密, ... -
PHP扩展实现类扩展
2015-03-27 14:08 580在第一篇文章中,我们所开发的扩展是单个函数,本篇文章看一下 ... -
PHP高级工程师的面试题
2015-03-06 10:35 01. 基本知识点 HTTP协议中几个状态码的含义:1x ... -
PHP面试中常见的面试试题与算法例子
2015-03-05 14:14 0下面是四道比较常见的题目,主要考察的是对字符串函数以及文件操 ... -
PHP实现四种常用的排序算法
2015-03-05 14:09 0插入排序(Insertion Sort),选择排序(Sele ... -
用swagger-php/ui做API测试
2015-02-13 09:46 3652功能: 1 swagger-php根据自定义的规则生成API ... -
app后端设计(0)--总目录
2015-01-23 18:03 0做了3年app相关的系统架构,api设计,先后在3个创业公司中 ... -
PHP中eAccelerator、memcached、xcache、APC 4个加速、缓存扩展的区别
2015-01-23 10:26 919这篇文章主要介绍了PHP ... -
PHP内核探索:zend_parse_parameters函数
2015-01-16 14:14 969最简单的获取函数调用者传递过来的参数便是使用zend_pars ... -
实战:用C写php扩展(二)
2015-01-16 11:05 1000一、前言 在我的上一篇文章“实战:用C写php扩展(一)”里介 ... -
实战:用C写php扩展(一)
2015-01-16 11:04 10191、 前言 首先,确保你的机器安装了apache和php。假 ... -
JavaScript or PHP 来检测移动设备
2014-09-22 10:04 634iPhone & iPod Detection T ... -
YII Framework学习教程-YII的Modules(模块化)
2014-08-27 11:04 756一个相对来说大的项目。如果按照yii生成的 ...
相关推荐
3. `::`(双冒号,作用域解析操作符): 这是PHP中的一个关键操作符,用于访问静态属性和方法,以及调用类常量。以下是一些用法示例: - 访问静态属性:`Class::static_property`,例如 `MyClass::myStaticVar`。 ...
范围解析操作符,通常被称为“双冒号”操作符,在PHP中具有非常重要的作用。它可以用来访问静态成员、方法和常量,还可以用于覆盖类中的成员和方法。 **语法示例**: ```php <?php class MyClass { const CONST_...
类常量(Class Constants)是PHP中另一个重要的概念,它们在定义后不能更改,且不需要通过对象实例来访问,而是使用类名加双冒号的方式,如`$object::constant`。类常量的值必须在声明时就是一个常量表达式,不能是...
静态方法是属于类本身的方法,可以直接通过类名和双冒号`::`来调用,无需创建类的实例。这使得静态方法可以在不创建对象的情况下执行某些操作,如工具函数或类的初始化。例如: ```php class Math { public ...
- **双冒号运算符**:`::`,通常用于访问类的静态成员(静态属性或静态方法)。例如: ```php class MyClass { public static $myStaticVar = 'Hello World!'; public static function sayHello() { echo ...
在PHP中,使用双冒号(::)操作符可以调用静态方法,如`class::method()`。静态方法不依赖于类的实例,它们在类定义时就已经存在,不会随着类的实例化而创建或销毁。静态方法不能访问类的非静态成员变量 `$this`,...
- **3.3.4 静态抽象方法**:在PHP5.2.0及更高版本中,可以定义静态抽象方法,虽然这在实际应用中较为罕见。 ### 设计模式 **3.4 设计模式之模版模式** - **3.4.1 模版模式实例**:模版模式允许在基类中定义算法的...
- `::`:双冒号运算符用于调用类中的静态成员或父类成员。 #### 六、访问控制 - **默认访问权限**:类成员的默认访问级别为`public`,即公共的。 - **私有成员**:使用`private`关键字声明私有成员,此类成员只能...
在上面的代码中,`$data` 是一个数组,其内容可以通过双冒号 `{{ }}` 在视图中访问。 在处理复杂的 HTML 结构时,laravel-dompdf 可能会遇到一些挑战,因为它依赖于 HTML 和 CSS 的浏览器渲染方式。确保你的 HTML ...
如果是双冒号,则表示参数是可选的;如果后面没有冒号,表示选项不需要参数。 - `$longopts` 是一个数组,包含了长选项的名称和是否需要参数的信息,与短选项相对应。 - `$optind` 是一个引用,用来设置一个索引,...
在Smarty模板中,变量被定义在双花括号中,例如:`{$variable}`,这是模板变量的标准格式。与直接在PHP中使用`<?php echo $variable; ?>`相比,Smarty模板变量的使用更为简洁,并且能够更有效地将程序逻辑与页面展示...
此外,当在JSON中处理字符串值时,需要确保字符串被双引号`""`包围,以保证JSON的格式正确。 在JavaScript与PHP的交互中,使用AJAX技术进行异步数据交换是很常见的场景。AJAX可以在不刷新整个页面的情况下,与...
`__METHOD__`魔术常量在PHP5及更高版本中被引入,它返回当前执行的方法名,包括类名和方法名,用双冒号`::`分隔。例如,在以下代码中: ```php <?php class Chhua { function test() { echo __METHOD__; } } $e...
在PHP开发中,特别是在构建命令行界面(CLI)应用程序时,GetOpt扮演着至关重要的角色。它能够帮助开发者从传递给脚本的参数中提取和解析特定的信息,从而实现更加灵活和强大的功能。 命令行参数解析是编程中的一个...
在实际的编程应用中,"this"、"self"和"parent"关键字能够帮助程序员写出更清晰、更易于维护和扩展的面向对象代码。"this"关注于当前对象实例,"self"关注于类本身,而"parent"关注于继承层级中的父类。 举个例子来...
- `:\/\/` 匹配冒号后的双斜杠,它们是URL协议后的必要部分。 - `[a-z]+` 匹配域名的开始部分,它由一个小写字母开始。 - `[.]{1}` 匹配域名中的点。 - `[a-z\d\-]+` 匹配域名的后续部分,这部分可能包含小写字母、...
因此,在有性能要求的应用中,应尽量采用更为高效和安全的方法。 总之,虽然php5.2以下版本的PHP没有内置json_decode函数,但我们通过自定义函数或引入第三方类,仍然可以实现JSON数据的解析。这样的解决方案虽然...
静态属性和方法可以通过类名加双冒号(::)来访问,而不是通过对象。 5. Final: Final关键字用于防止类或方法被继承或重写。当一个方法被声明为final,意味着它不能在子类中被覆盖,保持了函数行为的一致性。同样...
特别地,PHP特有的`::`(Paamayim Nekudotayim,双冒号)操作符,它是PHP中的范围解析操作符,用于访问静态成员变量和方法。通过使用`parent::`可以在子类中访问父类中的成员和方法,避免了直接使用父类名而造成的硬...