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无限级分类方法及代码
Jun 21 PHP
解析yahoo邮件用phpmailer发送的实例
Jun 24 PHP
请离开include_once和require_once
Jul 18 PHP
wordpress自定义url参数实现路由功能的代码示例
Nov 28 PHP
php小技巧之过滤ascii控制字符
May 14 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
Jun 13 PHP
php中创建和调用webservice接口示例
Jul 25 PHP
基于PHP的简单采集数据入库程序
Jul 30 PHP
thinkPHP实现表单自动验证
Dec 24 PHP
朋友网关于QQ相关的PHP代码(研究QQ的绝佳资料)
Jan 26 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
Nov 27 PHP
php简单检测404页面的方法示例
Aug 23 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
php session劫持和防范的方法
2013/11/12 PHP
PHP使用内置函数生成图片的方法详解
2016/05/09 PHP
PHP连接及操作PostgreSQL数据库的方法详解
2019/01/30 PHP
有效的捕获JavaScript焦点的方法小结
2009/10/08 Javascript
TextArea 控件的最大长度问题(js json)
2009/12/16 Javascript
JavaScript 中的日期和时间及表示标准介绍
2013/08/21 Javascript
sogou地图API用法实例教程
2014/09/11 Javascript
JavaScript中定义函数的三种方法
2015/03/12 Javascript
JS模式之简单的订阅者和发布者模式完整实例
2015/06/30 Javascript
javascript实现简单的进度条
2015/07/02 Javascript
Bootstrap选项卡与Masonry插件的完美结合
2016/07/06 Javascript
tangram.js库实现js类的方式实例分析
2018/01/06 Javascript
Babel 入门教程学习笔记
2018/06/13 Javascript
[02:17]2016国际邀请赛中国区预选赛VG战队领队采访
2016/06/26 DOTA
Python命令启动Web服务器实例详解
2017/02/23 Python
python requests 使用快速入门
2017/08/31 Python
关于反爬虫的一些简单总结
2017/12/13 Python
python ansible服务及剧本编写
2017/12/29 Python
Python反转序列的方法实例分析
2018/03/21 Python
Python提取支付宝和微信支付二维码的示例代码
2019/02/15 Python
浅谈python锁与死锁问题
2020/08/14 Python
美国美妆网站:B-Glowing
2016/10/12 全球购物
美国渔具店:FishUSA
2019/08/07 全球购物
师范毕业生自荐信
2013/10/17 职场文书
《青海高原一株柳》教学反思
2014/04/25 职场文书
教师竞聘演讲稿
2014/05/16 职场文书
运动会演讲稿50字
2014/08/25 职场文书
交通运输局四风问题对照检查材料思想汇报
2014/10/09 职场文书
教师自查自纠工作情况报告
2014/10/29 职场文书
2015纪念九一八事变84周年演讲稿
2015/03/19 职场文书
狂人日记读书笔记
2015/06/30 职场文书
董事长致辞
2015/07/29 职场文书
《纸船和风筝》教学反思
2016/02/18 职场文书
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
2021/05/27 Python
Python实现学生管理系统并生成exe可执行文件详解流程
2022/01/22 Python
「SHOW BY ROCK!!」“雫シークレットマインド”组合单曲MV公开
2022/03/21 日漫