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 04 PHP
PHP strtr() 函数使用说明
Nov 21 PHP
PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)
Apr 02 PHP
php中的动态调用实例分析
Jan 07 PHP
PHP的文件操作与算法实现的面试题示例
Aug 10 PHP
php5.4传引用时报错问题分析
Jan 22 PHP
实现PHP搜索加分页
Oct 12 PHP
Yii框架中sphinx索引配置方法解析
Oct 18 PHP
phpmailer绑定邮箱的实现方法
Dec 01 PHP
详解php框架Yaf路由重写
Jun 20 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
Oct 03 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
Feb 16 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判断字符串在另一个字符串位置的方法
2014/02/27 PHP
PHP整数取余返回负数的相关解决方法
2014/05/15 PHP
PHP框架Laravel中使用UUID实现数据分表操作示例
2018/05/30 PHP
php PDO属性设置与操作方法分析
2018/12/27 PHP
PHP date()格式MySQL中插入datetime方法
2019/01/29 PHP
用php定义一个数组最简单的方法
2019/10/04 PHP
js实时监听文本框状态的方法
2011/04/26 Javascript
jQuery EasyUI API 中文文档 - TimeSpinner时间微调器
2011/10/23 Javascript
jquery实现图片左右间隔滚动特效(可自动播放)
2013/05/08 Javascript
jquery事件与函数的使用介绍
2013/09/29 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
javascript每日必学之基础入门
2016/02/16 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
jQuery插件实现文件上传功能(支持拖拽)
2020/08/27 Javascript
jQuery事件绑定用法详解
2016/09/08 Javascript
微信小程序 less文件编译成wxss文件实现办法
2016/12/05 Javascript
js数字舍入误差以及解决方法(必看篇)
2017/02/28 Javascript
node-sass安装失败的原因与解决方法
2017/09/04 Javascript
vue2.0 中使用transition实现动画效果使用心得
2018/08/13 Javascript
详解vue-cli 3.0 build包太大导致首屏过长的解决方案
2018/11/10 Javascript
JavaScript链式调用实例浅析
2018/12/19 Javascript
微信小程序实现同一页面取值的方法分析
2019/04/30 Javascript
微信小程序商品详情页底部弹出框
2019/11/22 Javascript
使用Python脚本对Linux服务器进行监控的教程
2015/04/02 Python
对python numpy数组中冒号的使用方法详解
2018/04/17 Python
python numpy数组的索引和切片的操作方法
2018/10/20 Python
python tkinter库实现气泡屏保和锁屏
2019/07/29 Python
Python读取Excel数据并生成图表过程解析
2020/06/18 Python
Python 如何对文件目录操作
2020/07/10 Python
财务会计专业毕业生自荐信
2013/10/19 职场文书
学雷锋演讲稿
2014/03/04 职场文书
升职自我推荐信范文
2015/03/25 职场文书
中国现代文学之经典散文三篇
2019/09/18 职场文书
2019年第四季度财务部门工作计划
2019/11/02 职场文书
《敬重卑微》读后感3篇
2019/11/26 职场文书
Python之matplotlib绘制折线图
2022/04/13 Python