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实现的遍历文件夹下所有文件,编辑删除
Jan 05 PHP
如何在symfony中导出为CSV文件中的数据
Oct 06 PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
Jul 01 PHP
php导出CSV抽象类实例
Sep 24 PHP
php实现的mongodb操作类
May 28 PHP
PHP cURL初始化和执行方法入门级代码
May 28 PHP
php实现的用户查询类实例
Jun 18 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
Jan 11 PHP
基于PHP实现数据分页显示功能
May 26 PHP
php的api数据接口书写实例(推荐)
Sep 22 PHP
iOS自定义提示弹出框实现类似UIAlertView的效果
Nov 16 PHP
宝塔面板出现“open_basedir restriction in effect. ”的解决方法
Mar 14 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+MYSQL会员系统的登陆即权限判断实现代码
2011/09/23 PHP
php制作简单模版引擎
2016/04/07 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
基于jquery的页面划词搜索JS
2010/09/14 Javascript
window.name代替cookie的实现代码
2010/11/28 Javascript
jquery异步调用页面后台方法‏(asp.net)
2011/03/01 Javascript
JS中判断null、undefined与NaN的方法
2014/03/24 Javascript
在Javascript中处理字符串之big()方法的使用
2015/06/08 Javascript
轻松实现js图片预览功能
2016/01/18 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
2016/02/16 Javascript
vuejs2.0实现一个简单的分页示例
2017/02/22 Javascript
jquery实现联想词搜索框和搜索结果分页的示例
2018/10/10 jQuery
js实现京东秒杀倒计时功能
2019/01/21 Javascript
vue中npm包全局安装和局部安装过程
2019/09/03 Javascript
使用layui的router来进行传参的实现方法
2019/09/06 Javascript
js实现直播点击飘心效果
2020/08/19 Javascript
videocapture库制作python视频高速传输程序
2013/12/23 Python
python实现在sqlite动态创建表的方法
2015/05/08 Python
python3利用Dlib19.7实现人脸68个特征点标定
2018/02/26 Python
python爬取个性签名的方法
2018/06/17 Python
Python爬虫实现爬取百度百科词条功能实例
2019/04/05 Python
python+selenium 点击单选框-radio的实现方法
2019/09/03 Python
Python3.6 + TensorFlow 安装配置图文教程(Windows 64 bit)
2020/02/24 Python
html5播放视频且动态截图实现步骤与代码(支持safari其他未测试)
2013/01/06 HTML / CSS
html5关于外链嵌入页面通信问题(postMessage解决跨域通信)
2020/07/20 HTML / CSS
哈理工毕业生的求职信
2013/12/22 职场文书
简历上的自我评价
2014/02/03 职场文书
党员批评与自我批评
2014/02/12 职场文书
护理专科学生自荐书
2014/07/05 职场文书
社区班子个人对照检查材料思想汇报
2014/10/07 职场文书
项目转让协议书
2014/10/27 职场文书
泰坦尼克号观后感
2015/06/04 职场文书
小学大队干部竞选稿
2015/11/20 职场文书
熟背这些句子,让您的英语口语突飞猛进(135句)
2019/09/06 职场文书
Tomcat用户管理的优化配置详解
2022/03/31 Servers
MySql数据库 查询时间序列间隔
2022/05/11 MySQL