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 has encountered an Access Violation
Jan 15 PHP
php microtime获取浮点的时间戳
Feb 21 PHP
php继承的一个应用
Sep 06 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
Nov 10 PHP
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
Jun 20 PHP
php pki加密技术(openssl)详解
Jul 01 PHP
解析PHP实现下载文件的两种方法
Jul 05 PHP
PHP获取栏目的所有子级和孙级栏目的ID号示例
Apr 01 PHP
分享php多功能图片处理类
May 15 PHP
php生成与读取excel文件
Oct 14 PHP
详解php中serialize()和unserialize()函数
Jul 08 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
Jul 19 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
获得Google PR值的PHP代码
2007/01/28 PHP
php利用cookie实现访问次数统计代码
2011/05/19 PHP
php返回相对时间(如:20分钟前,3天前)的方法
2015/04/14 PHP
php 判断字符串编码是utf-8 或gb2312实例
2016/11/01 PHP
仅img元素创建后不添加到文档中会执行onload事件的解决方法
2011/07/31 Javascript
Javascript面向对象设计一 工厂模式
2011/12/20 Javascript
jquery实现简单的表单验证
2015/11/17 Javascript
JS提交form表单实例分析
2015/12/10 Javascript
jQuery EasyUI 入门必看
2016/06/03 Javascript
Bootstrap按钮功能之查询按钮和重置按钮
2016/10/26 Javascript
jQuery基本选择器和层次选择器学习使用
2017/02/27 Javascript
微信小程序 弹框和模态框实现代码
2017/03/10 Javascript
基于vue.js轮播组件vue-awesome-swiper实现轮播图
2017/03/17 Javascript
jQuery滚动插件scrollable.js用法分析
2017/05/25 jQuery
JS点击缩略图整屏居中放大图片效果
2017/07/04 Javascript
vue+vue-validator 表单验证功能的实现代码
2017/11/13 Javascript
JavaScript实现的超简单计算器功能示例
2017/12/23 Javascript
Node.js命令行/批处理中如何更改Linux用户密码浅析
2018/07/22 Javascript
JS中的算法与数据结构之栈(Stack)实例详解
2019/08/20 Javascript
使用vuex存储用户信息到localStorage的实例
2019/11/11 Javascript
Python基础篇之初识Python必看攻略
2016/06/23 Python
详解python项目实战:模拟登陆CSDN
2019/04/04 Python
Python3和PyCharm安装与环境配置【图文教程】
2020/02/14 Python
英国工作场所设备购买网站:Slingsby
2019/05/03 全球购物
漫威玩具服装及周边商品官方购物网站:Marvel Shop
2019/05/11 全球购物
大学生活学习的自我评价
2013/12/03 职场文书
总裁秘书岗位职责
2013/12/04 职场文书
学习党章思想汇报
2014/01/07 职场文书
保健品市场营销方案
2014/03/31 职场文书
市场推广策划方案
2014/06/02 职场文书
辩护词格式
2015/05/22 职场文书
贷款收入证明格式
2015/06/24 职场文书
小学体育教学随笔
2015/08/14 职场文书
学风建设主题班会
2015/08/17 职场文书
蓝天保卫战收官在即 :15行业将开展环保分级评价
2019/07/19 职场文书
如何让vue长列表快速加载
2021/03/29 Vue.js