类 - 函数对象 - PHP


Class - Function Objects - PHP

我注意到在 magento 上,他们调用了一个函数,该函数被引用为一个对象,如下所示:

className::function('example')->example;

对我来说,它是如何工作的毫无意义?我试图在测试文件中模仿它,但我一无所获。

<?php
class Example
{
    public function test($arg)
    {
        $want = new ExampleTwo;
        return 1;
    }
}
class ExampleTwo
{
    public $want;
    public function urgh($arg)
    {
        $this->want = "returnn";
    }
}
$Obj = new Example;
echo $Obj->test('random')->want;

注意 尝试获取第 24 行上非对象的属性

任何人都可以解释函数如何成为对象吗? 如果是这样,我如何从函数对象中获取值。

如果在函数中返回对象,则可以直接从函数返回值调用该对象。

在您的测试用例中:

public function test($arg)
{
    $want = new ExampleTwo;
    return $want;
}

如果你有这个:

$Obj = new Example;
echo $Obj->test('random')->want

这将回显 ExampleTwo 类的 "want" 属性,该属性在示例代码中为 NULL。