【发布时间】:2019-01-16 05:51:47
【问题描述】:
我今天遇到了一些使用 PHP 后期静态绑定的代码,它的使用方式对我来说没有意义。后期静态绑定对我来说是一个新概念,所以我正试图围绕它展开思考。
在研究了这个Github Gist 并阅读了这个Stack Overflow 帖子之后,我了解了后期静态绑定的作用以及使用它的原因。现在我正在尝试将其应用于我正在查看的代码,这对我来说没有意义。感觉static 关键字使用不正确。这里或多或少是我不确定的代码:
<?php
class myClass
{
const MY_CONST = 'some string';
public function getMyConst()
{
return static::MY_CONST;
}
}
$c = new myClass();
print_r($c->getMyConst());
假设我理解这个概念,后期静态绑定让您在静态上下文中引用孩子的 const。所以在我查看的代码中没有继承也没有静态函数,那么在这个特定用例中使用static 关键字与self 关键字有什么意义呢?此外,假设使用不正确(或者可能不完全按照预期使用),以这种方式使用 static 关键字是否会造成任何伤害?
【问题讨论】: