php基础知识:类与对象(4) 范围解析操作符(::)


Posted in PHP onDecember 13, 2006

范围解析操作符(也可称作 Paamayim Nekudotayim)或者更简单地说是一对冒号,可以用于访问静态成员、方法和常量,还可以用于访问被覆盖类中的成员和方法。 
当在类的外部访问这些静态成员、方法和常量时,必须使用类的名字。
把 Paamayim Nekudotayim 在希伯莱文就是双冒号的意思。 

在类的外部使用 :: 操作符
class MyClass {
   const CONST_VALUE = 'A constant value';
}

echo MyClass::CONST_VALUE;

self 和 parent 这两个特殊的关键字是用于在类的内部对成员或方法进行访问的。 

例子:
class OtherClass extends MyClass
{
   public static $my_static = 'static var';

   public static function doubleColon() {
       echo parent::CONST_VALUE . " n";
       echo self::$my_static . " n";
   }
}
OtherClass::doubleColon();

当一个子类覆盖其父类中的方法时,PHP 不会再执行父类中已被覆盖的方法,直到子类中调用这些方法为止。(是不是废话?不是,这是PHP与其他主流语言的一点区别)。这种机制也作用于构造函数和析构函数、重载及魔术函数。 

class MyClass
{
   protected function myFunc() {
       echo "MyClass::myFunc() n";
   }
}

class OtherClass extends MyClass
{
   // 覆盖父类中的方法
   public function myFunc()
   {
       // 但仍然可以调用已被覆盖的方法
       parent::myFunc();
       echo "OtherClass::myFunc() n";
   }
}

$class = new OtherClass();
$class->myFunc();

--------------------------------------------------------------------------------
??重点??访问静态方法或者成员时一定要使用类名::的方式。
另外就是注意:PHP不会主动调用父类的方法,包括构造函数和析构函数在内。
参见这个文字:http://163xiaofan.blog.163.com/blog/static/1713578020061027101820973 

PHP 相关文章推荐
配置PHP使之能同时支持GIF和JPEG
Oct 09 PHP
检查url链接是否已经有参数的php代码 添加 ? 或 &
Feb 09 PHP
PHP SOCKET编程详解
May 22 PHP
PHP模板引擎Smarty自定义变量调解器用法
Apr 11 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
php生成word并下载代码实例
Mar 15 PHP
简单实用的PHP文本缓存类实例
Mar 22 PHP
phpStorm+XDebug+chrome 配置详解
Apr 01 PHP
Yii2框架加载css和js文件的方法分析
May 25 PHP
PHP中有关长整数的一些操作教程
Sep 11 PHP
PHP实现通过二维数组键值获取一维键名操作示例
Oct 11 PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
Oct 15 PHP
php基础知识:类与对象(3) 构造函数和析构函数
Dec 13 #PHP
php基础知识:类与对象(2) 自动加载对象
Dec 13 #PHP
php基础知识:类与对象(1)
Dec 13 #PHP
php基础知识:函数基础知识
Dec 13 #PHP
php基础知识:控制结构
Dec 13 #PHP
《PHP边学边教》(04.编写简易的通讯录――视频教程1)
Dec 13 #PHP
IIS+PHP+MySQL+Zend配置 (视频教程)
Dec 13 #PHP
You might like
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
php中{}大括号是什么意思
2013/12/01 PHP
php 生成签名及验证签名详解
2016/10/26 PHP
如何离线执行php任务
2017/02/21 PHP
php 中的信号处理操作实例详解
2020/03/04 PHP
让div层随鼠标移动的实现代码 ie ff
2009/12/18 Javascript
Js 刷新框架页的代码
2010/04/13 Javascript
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
javascript省市区三级联动下拉框菜单实例演示
2015/11/29 Javascript
JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面
2016/08/04 Javascript
AngularJS 整理一些优化的小技巧
2016/08/18 Javascript
AngularJS  双向数据绑定详解简单实例
2016/10/20 Javascript
JavaScript触发onScroll事件的函数节流详解
2016/12/14 Javascript
原生JS实现《别踩白块》游戏(兼容IE)
2017/02/20 Javascript
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
jquery动态赋值id与动态取id方法示例
2017/08/21 jQuery
详解NODEJS基于FFMPEG视频推流测试
2017/11/17 NodeJs
jQuery实现的记住帐号密码功能完整示例
2019/08/03 jQuery
[59:59]EG vs IG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python快速排序代码实例
2013/11/21 Python
Python实现的生产者、消费者问题完整实例
2018/05/30 Python
django进阶之cookie和session的使用示例
2018/08/17 Python
python绘制多个曲线的折线图
2020/03/23 Python
python 判断矩阵中每行非零个数的方法
2019/01/26 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
2019/06/25 Python
Python Print实现在输出中插入变量的例子
2019/12/25 Python
HTML5的结构和语义(4):语义性的内联元素
2008/10/17 HTML / CSS
Omio葡萄牙:全欧洲低价大巴、火车和航班搜索和比价
2019/02/09 全球购物
美工的岗位职责
2013/11/14 职场文书
财务管理专业推荐信
2013/11/19 职场文书
对孩子的寄语
2014/04/09 职场文书
学生未请假就回家检讨书
2014/09/22 职场文书
教师群众路线剖析材料
2014/09/29 职场文书
检讨书范文
2015/01/27 职场文书
2015年七一建党节活动总结
2015/03/20 职场文书