【发布时间】:2015-02-22 00:09:39
【问题描述】:
为了学习,有没有什么方法可以初始化一个对象,调用它的方法,然后在PHP的一个语句中把对象赋值给变量?
我尝试过类似的方法:
$dom = (new DOMDocument)->loadHTML('<html></html>');
echo gettype($dom); // Result: boolean
但它返回的是布尔值而不是对象,所以我不能用它做任何事情。
我期望成为一个对象,所以我可以调用:$dom->saveHTML();,但它却抛出了错误:
致命错误:在非对象上调用成员函数 saveHTML()
有什么解决方法吗?或者这些是语言的限制。
以下代码可以正常工作:
$dom = new DOMDocument;
$dom->loadHTML('<html></html>');
echo gettype($dom); // Result: object
我正在使用 PHP 5.5.3 (cli)。
【问题讨论】:
-
你运行的是什么版本的 PHP ?它应该工作
-
@TomToms 我正在使用 PHP 5.5.3 (cli) 进行测试。
-
由于您实际上希望
$dom成为(new DOMDocument)而不是loadHTML的返回值,因此您无法做您想做的事情。可能有一种非常老套的方法来做到这一点,但这无论如何都会破坏单行代码的所有好处。你想要的东西基本上是$boolval = ($dom = (new DOMDocument))->loadHTML(),但 PHP 不允许这样做。如果我觉得无聊,我可能会在以后分享一个 hacky-solution。