如果我在 PHP 中扩展一个静态类,并且父类引用“self::”,那么 this 会引用扩展类中的 self 吗?
如果我在PHP中扩展一个静态类,并且父类引用“self::”,这会引用扩展类中的self吗?
所以,举例来说,
<?php
Class A
{
static $var
public static function guess(){self::$var = rand(); return $var}
}
Class B extends Class A
{
public static function getVar(){return self::$var}
}
如果我跑了 B::猜测(); 然后 B::getVar();
Var 的值是存储在 A::$var 中还是 B::$var 中?
谢谢。
If i extend a static class in PHP, and the parent class refers to "self::", will this refer to the self in the extended class?
So, for example
<?php
Class A
{
static $var
public static function guess(){self::$var = rand(); return $var}
}
Class B extends Class A
{
public static function getVar(){return self::$var}
}
If I ran
B::guess();
then B::getVar();
is the value for Var stored in A::$var or B::$var?
Thank you.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
后期静态绑定是在 PHP 5.3 中引入的,它允许你来控制这种行为。
Late static binding was introduced in PHP 5.3, it allows you to control this behavior.
很容易测试:
...希望有帮助:)
It's easy to test:
... hope that helps :)
附加信息,self 或 $this 的使用与扩展类不同
Additional information, usage of self or $this is different into extended classes