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 格式化数字的时候注意数字的范围
Apr 13 PHP
PHP对象Object的概念 介绍
Jun 14 PHP
(PHP实现)只使用++运算实现加法,减法,乘法,除法
Jun 27 PHP
一个简单且很好用的php分页类
Oct 26 PHP
php中单个数据库字段多列显示(单字段分页、横向输出)
Jul 28 PHP
PHP生成不重复标识符的方法
Nov 21 PHP
php在数据库抽象层简单使用PDO的方法
Nov 03 PHP
反射调用private方法实践(php、java)
Dec 21 PHP
PHP版本的选择5.2.17 5.3.27 5.3.28 5.4 5.5兼容性问题分析
Apr 04 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
May 25 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
Mar 08 PHP
laravel 中某一字段自增、自减的例子
Oct 11 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
菜鸟修复电子管记
2021/03/02 无线电
通过ICQ网关发送手机短信的PHP源程序
2006/10/09 PHP
PHP 图片上传实现代码 带详细注释
2010/04/29 PHP
解析func_num_args与func_get_args函数的使用
2013/06/24 PHP
WordPress后台中实现图片上传功能的实例讲解
2016/01/11 PHP
yii框架使用分页的方法分析
2019/07/25 PHP
asp(javascript)全角半角转换代码 dbc2sbc
2009/08/06 Javascript
JS window.opener返回父页面的应用
2009/10/24 Javascript
js null,undefined,字符串小结
2010/08/21 Javascript
当达到输入长度时表单自动切换焦点
2014/04/06 Javascript
js判断浏览器类型及设备(移动页面开发)
2015/07/30 Javascript
基于Vue.js实现数字拼图游戏
2016/08/02 Javascript
webpack4.x打包过程详解
2018/07/18 Javascript
JavaScript实现简单随机点名器
2019/11/21 Javascript
在Vue 中实现循环渲染多个相同echarts图表
2020/07/20 Javascript
vue a标签点击实现赋值方式
2020/09/07 Javascript
详解Python的Django框架中的模版继承
2015/07/16 Python
Python进阶篇之字典操作总结
2016/11/16 Python
Python文件操作之合并文本文件内容示例代码
2017/09/19 Python
Python常见字符串操作函数小结【split()、join()、strip()】
2018/02/02 Python
解决Pycharm下面出现No R interpreter defined的问题
2018/10/29 Python
python实现Dijkstra静态寻路算法
2019/01/17 Python
Python requests获取网页常用方法解析
2020/02/20 Python
PyCharm2020.3.2安装超详细教程
2021/02/08 Python
纯CSS3实现自定义Tooltip边框涂鸦风格的教程
2014/11/05 HTML / CSS
使用CSS禁止textarea调整大小功能的方法
2015/03/13 HTML / CSS
viagogo法国票务平台:演唱会、体育比赛、戏剧门票
2017/03/27 全球购物
水果花束:Fruit Bouquets
2017/12/20 全球购物
英国最大的割草机购买网站:Just Lawnmowers
2019/11/02 全球购物
市场营销专业毕业生求职信
2014/03/26 职场文书
关于热爱祖国的演讲稿
2014/05/04 职场文书
目标责任书格式
2014/07/28 职场文书
喝酒驾驶检讨书
2014/10/01 职场文书
英语辞职信怎么写
2015/02/28 职场文书
javaScript Array api梳理
2021/03/31 Javascript
python 自动刷新网页的两种方法
2021/04/20 Python