php中的解析范围符,PHP 的范围解析操作符 (::) 的含义分析说明

PHP 的范围解析操作符 (::) 的含义分析说明

今天看到几个有关 PHP 的符号一个是 @, 这个加在一个变量的前面, 是为了抑制 PHP 解释器报错, 也就是说即使出了错也不会显示出来

今天看到几个有关 PHP 的符号一个是 @, 这个加在一个变量的前面, 是为了抑制 PHP 解释器报错, 也就是说即使出了错也不会显示出来

还有一个更重要的符号 PHP 的范围解析操作符(::)

在没有声明任何实例的情况下访问类中的函数或者基类中的函数和变量很有用处而 :: 运算符即用于此情况

代码如下:classA{

functionexample(){

echo"I am the original function A::example().

\n";

}

}

classBextendsA{

functionexample(){

echo"I am the redefined function B::example().

\n";

A::example();

}

}

// A 类没有对象, 这将输出

// I am the original function A::example().

A::example();

// 建立一个 B 类的对象

$b=newB;

// 这将输出

// 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.php1.cn/detail/php-a13a336aa5.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值