gpt4 book ai didi

php - 在 php 中使用 self 关键字而不是 static 关键字的任何理由或用例?

转载 作者:搜寻专家 更新时间:2023-10-31 20:46:34 24 4
gpt4 key购买 nike

从 php 5.3 开始,static 关键字解决了后期静态绑定(bind)问题,它可以像大多数其他 OO 语言使用 self 一样使用。在 PHP 中 self 仍然存在。

我知道这两个关键字在功能上是如何分开的,正如之前在这个问题中指出的那样:Is there any reason to use the self keyword? .

但是,我的问题是:任何人都可以给出一个理由,为什么您想要在代码中使用 self 来运行 5.3 或更高版本的 PHP? self 有更好的性能吗?我还没有找到任何令人信服的使用 self 关键字的用例。我的理解是,仅允许旧库以预期的方式继续工作。

这个问题的关键是任何人都可以提出一个好的理由,任何好的理由,只有一个,微小的,小的理由,对于一个称职的 PHP 开发人员说“哎呀,在这里我真的应该使用'self'来代替的‘静态’。”

因为您可能想搬起石头砸自己的脚,而这是使用它的理由并不是一个好的理由。

最佳答案

啊!找到了我的一个很好的理由。目前在 php 5.3 中,您无法使用 static 访问编译时常量。

下面的代码会抛出错误

 class Foo{
const BAR = "FREE BEER";

public static function whatDoWeLove(){
return static::BAR;
}
}


echo Foo::whatDoWeLove();

我得到的错误是:

PHP Fatal error:  "static::" is not allowed in compile-time constants in....

所以,我猜现在 self 会一瘸一拐地走下去,直到它发生变化,或者 PHP 添加了使用带有静态属性的 final 关键字的能力。糟透了。

关于php - 在 php 中使用 self 关键字而不是 static 关键字的任何<good>理由或用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12464895/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com