PackageBaseClass :: AnotherClass-> Method() - 可能在PHP5中?

时间:2015-11-06 19:12:54

标签: php oop

我试图调用这样的方法:

PackageName::BankAccounts->create('arg1', 'arg2');

但是我得到了解析错误:

解析错误:语法错误,意外' - >' (T_OBJECT_OPERATOR)...

在PHP 5.6.14中,但我真的觉得我已经看到过某种风格。

我错了,还是有一个技巧可以在PHP5中以这种方式完成调用方法?

2 个答案:

答案 0 :(得分:0)

我认为正确的语法是:

(new PromisePay::BankAccountRepository())->getBankAccountById('asdasdasd');

要从类名中获取对象,必须使用new来创建对象。

但是,立即在新对象上执行此操作并没有多大意义。您必须先将银行帐户添加到存储库,然后才能检索它。

答案 1 :(得分:0)

我们走了:

<?php

class BankAccount {
    public static function getBankAccountById($id) {
        return array('data', 'more data', '_self' => $id);
    }
}

class BaseClass {
    public static function __callStatic($className, $argsWeWontUse) {
        return new $className;
    }
}

$call = BaseClass::BankAccount()->getBankAccountById('abcdefghijkl123456');

print_r($call);

/*

Array
(
    [0] => data
    [1] => more data
    [_self] => abcdefghijkl123456
)

*/

?>

尽管如此,我很感谢你的时间Barmar。

相关问题