gpt4 book ai didi

PHP,在类属性上调用静态方法

转载 作者:行者123 更新时间:2023-12-03 22:29:51 24 4
gpt4 key购买 nike

我希望将对象存储为类的属性。然后我希望能够通过直接引用该属性来调用该类上的静态方法。

考虑以下因素:

class myModel {
public static function all()
{
return 1;
}
}

class myClass {
public $models;

public function __construct()
{
$this->models->myModel = new myModel;
$results = $this->models->myModel::all();
}
}

$result = new myClass;

PHP 在 $results = $this->models->myModel::all();

上失败

如果我通过将类属性分配给局部变量来修改它,事情就会按预期工作:

$myModel = $this->models->myModel;
$results = $myModel::all();

我想消除将类属性分配给局部变量的需要。

这在 PHP 5.3.x(我正在使用的版本)或更高版本中可能吗?

解决方案应该是可读的,并且代码的目的不应该被混淆。

为了清楚起见,这是工作代码的极大简化。在我发布的示例代码中,将对象存储在类属性中的好处并不明显。

最佳答案

语法会给您带来的错误是:

Parse error: syntax error, unexpected '::' (T_PAAMAYIM_NEKUDOTAYIM)


但是,由于Uniform Variable Syntax RFC,它可以在 PHP 7 中工作。 。所有之前的版本都需要中间变量。

关于PHP,在类属性上调用静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33198432/

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