gpt4 book ai didi

php - 特质; PHP 5.4 中的 parent 和 self 类型提示

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:06:42 25 4
gpt4 key购买 nike

虽然这个问题有点与语言无关(就支持 Traits 的 OOP 语言而言)我一直在修补 PHP 5.4a 的夜间构建,并遇到了一个奇怪的场景。我似乎无法再运行我的安装,但那是另一回事了。

给定以下代码段:

trait MyTrait
{

public function myMethod(self $object)
{
var_dump($object);
}

}

class MyClass
{

use MyTrait;

}

$myObject = new MyClass();
$myObject->myMethod('foobar'); // <-- here

应该发生什么?我希望出现错误,指示 $object 需要是 MyClass 的实例。

当 trait 方法被复制到一个 use 类中时,它们是否被逐字复制,以解决像这样的类继承引用?这是 Trait 的预期功能吗? (我没有使用过其他支持它们的语言)

最佳答案

好吧,我已经确认它确实如我所希望和预期的那样:

class MyClass
{

use MyTrait;

}

$myObject = new MyClass();

$myObject->myMethod($myObject); // ok

$myObject->myMethod('foobar'); // Catchable fatal error, argument must be instance etc

好消息。

关于php - 特质; PHP 5.4 中的 parent 和 self 类型提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6856231/

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