博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP双冒号- 范围解析操作符(::)的用法
阅读量:4475 次
发布时间:2019-06-08

本文共 870 字,大约阅读时间需要 2 分钟。

\n"; } } class B extends A { function example() { echo "I am the redefined function B::example().
\n"; A::example(); } } // A 类没有对象,这将输出 // I am the original function A::example().
A::example(); // 建立一个 B 类的对象 $b = new B; // 这将输出 // I am the redefined function B::example().
// I am the original function A::example().
$b->example(); ?>

上面的例子调用了 A 类的函数 example(),但是这里并不存在 A 类的对象,因此不能这样用 $a->example() 或者类似的方法调用 example()。反而我们将 example() 作为一个类函数来调用,也就是说,作为一个类自身的函数来调用,而不是这个类的任何对象。

这里有类函数,但没有类的变量。实际上,在调用函数时完全没有任何对象。因而一个类的函数可以不使用任何对象(但可以使用局部或者全局变量),并且可以根本不使用 $this 变量。

上 面的例子中,类 B 重新定义了函数 example()。A 类中原始定义的函数 example() 将被屏蔽并且不再生效,除非使用 :: 运算符来访问 A 类中的 example() 函数。如:A::example()(实际上,应该写为 parent::example())。

就此而论,对于当前对象,它可能有对象变量。因此可以在对象函数的内部使用 $this 和对象变量。

转载于:https://www.cnblogs.com/zhaiqianfeng/archive/2012/11/06/4618066.html

你可能感兴趣的文章
找错题
查看>>
分布式环境下限流方案的实现redis RateLimiter Guava,Token Bucket, Leaky Bucket
查看>>
Spring笔记
查看>>
C# 如何查看源程序的IL代码
查看>>
maven+springmvc出现:java.sql.SQLException: Unknown system variable 'query_cache_size'
查看>>
java中的上传下载----ajaxFileUpload+struts2
查看>>
RMAN简明教程之六——RMAN的管理
查看>>
Silverlight/Windows8/WPF/WP7/HTML5周学习导读(8月13日-8月19日)
查看>>
BZOJ 1004([HNOI2008]Cards-Polya计数+k背包)
查看>>
也谈分层
查看>>
深入理解JVM(二)JVM内存模型
查看>>
ELK 安装笔记
查看>>
我的cppblog博客地址
查看>>
mysql jdbc源码分析片段 和 Tomcat's JDBC Pool
查看>>
错误记录:datagridview RowChange事件不触发
查看>>
java中的形参实参定义
查看>>
[Atcoder Regular Contest 061] Tutorial
查看>>
HTML拾遗
查看>>
Python tips: 什么是*args和**kwargs?
查看>>
checking for fcc ....no checking for cc .. no
查看>>