五、范围解析操作符(::)

范围解析操作符(也可称作 Paamayim Nekudotayim)或者更简单地说是一对冒号,可以用于访问静态成员、方法和常量,还可以用于覆盖类中的成员和方法。

当在类的外部访问这些静态成员、方法和常量时,必须使用类的名字。

把 Paamayim Nekudotayim 选作该操作符的名字似乎有些奇怪。然而,这是 Zend 开发小组在写 Zend Engine 0.5 (被用于 PHP 3 中)时所作出的决定。事实上这个词在希伯莱文就是双冒号的意思。

Example#1 在类的外部使用 :: 操作符

<?php
class MyClass {const CONST_VALUE = 'A constant value';
}
echo MyClass :: CONST_VALUE;?>

self 和 parent 这两个特殊的关键字是用于在类的内部对成员或方法进行访问的。

Example#2 :: from inside the class definition

<?php
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 不会再执行父类中已被覆盖的方法,直到子类中调用这些方法为止。这种机制也作用于 构造函数和析构函数、重载 及 魔术 函数。

Example#3 调用父类的方法

<?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();?>

转载于:https://www.cnblogs.com/qingsong/p/5351112.html

PHP新手之学习类与对象(4)相关推荐

  1. cdr对象管理器怎么用_CDR新手必看之对象管理的方法

    原标题:CDR新手必看之对象管理的方法 作为一个专业的矢量绘图软件,CorelDRAW在LOGO设计,广告设计.插画设计.杂志排版.影视动画等很多方面都会用到,实用性很广泛.今天小编给大家介绍一下在C ...

  2. Kotlin基础语法学习类和对象(一)

    类定义 Kotlin 类可以包含:构造函数和初始化代码块.函数.属性.内部类.对象声明. Kotlin 中使用关键字 class 声明类,后面紧跟类名: class Runoob { // 类名为 R ...

  3. C++ 初识类与对象

    C++是一门面向对象的编程语言,那类与对象也就是C++的核心部分,现在让我们一起来学习类与对象吧. 初识类与对象 类的定义 类的限定符 封装 类的实例化 类对象模型 类的大小 this指针 类的定义 ...

  4. 零基础学python实战-零基础学习python_类和对象(36-40课)

    今天我们开始学习面向对象的知识咯,之前我对面向对象也学的懵懵的,因为感觉知道好像又不是特别清楚,接下来我们一起来学习类和对象吧.零基础的课程我都是看小甲鱼的视频学的,没基础的可以去这个网址下载视频学习 ...

  5. JavaSE-面向对象编程-第一篇

    一.类和对象 1.1 面向对象和面向过程 面向过程和面向对象都是对软件分析.设计和开发的一种思想,它指导着人们以不同的方式去分析.设计和开发软件. 早期先有面向过程思想,随着软件规模的扩大,问题的复杂 ...

  6. Classes and Objects in Java--类和对象

    In this session, we will discuss classes and objects and learn how to create them in Java. 本章节我们学习类和 ...

  7. JAVA 基础(4) 类与对象

    Java语言的基本元素: 类和对象 万丈高楼平地起,java也不列外.这篇文章让我们来探索java的独特的魅力类和对象. 面向对象的思想概述 : 类(Class)和对象(Object)是面向对象的核心 ...

  8. 紫影龙的编程日记 —— 认识类和对象

    今天是我学习 Visual C++ 开发技术的第二天,我主要学习的是类和对象.在学习类和对象之前,首先需要了解两个概念. 面向过程程序设计 ( Procedural Programming ) 方法是 ...

  9. Java 类和对象详述

    类和对象 我们都知道Java和C语言有一个很大的不同点在于,C语言是面向过程的,而Java是面向对象的,在Java中,我们通过许许多多的类和对象来实现我们的需求. 有人告诉我那里遍地都是对象.在没有学 ...

最新文章

  1. OllyDebug调试技巧(三)
  2. winphone8更换帐号问题的几点说明
  3. java redis 生成唯一id_Redis在集群环境中生成唯一ID
  4. python3.8 实现鼠标自动移动_“新生报到”!【移动机器人 HD-1500】负载1500kg,实现了重型货物运输的自动化...
  5. 滴滴网约车前端招聘实习生啦
  6. linux awk 内置变量使用介绍
  7. php srem,SREM命令_视频讲解_用法示例-redis编程词典-php中文网
  8. DFS 事件id 2104 2004 报错
  9. LeetCode345. Reverse Vowels of a String
  10. 17muduo_base库源码分析(八)
  11. 深度学习实践指南(三)—— 参数(超参)及数据集的处理
  12. Leetcode 79.单词搜索
  13. android中表情功能实现,android sina 微博表情功能的实现
  14. C语言题目教室数量编程,北京理工大学网教室C语言编程题库及答案(绝对经典).doc...
  15. 大学计算机基础流媒体,大学计算机基础经典课件.ppt
  16. 【托业】【新托业TOEIC新题型真题】学习笔记8-题库五-P7
  17. 肌酸报告:17个肌酸使用常见问题解答
  18. 如何检查您附近(或任何地方)的空气质量
  19. 发送端口25,465,587端口
  20. 2022 年 Python 程序员值得学习的 8 种工具

热门文章

  1. IT餐馆—第三回 模式
  2. Linux sh/bash[精华]
  3. 看章立民的sql server 2000程序设计
  4. 自动驾驶汽车也能聊天?
  5. Android设为系统默认的短信应用
  6. spring整合shiro
  7. 【原创】Kakfa api包源代码分析
  8. TRANSACTIONAL TEXT INDEX全文索引可能消耗大量PGA内存
  9. 关于 IE 模态对话框的两个问题
  10. mongoDB 3.0 安全权限访问控制