为什么会抛出此代码
语法错误,意外的'->'(T_OBJECT_OPERATOR),期望为','或';'
php 7.1
<?php
class TestHtml
{
public function Send() { return $this; }
public function Dispose() { return $this; }
public function ToString() { return 'Done'; }
}
echo new TestHtml->Send()->Dispose()->ToString(); // there error
?>
PHP无法理解这一点。它不能弄清楚第一部分是对构造函数的调用。使用括号。
<?php
class TestHtml
{
public function Send() { return $this; }
public function Dispose() { return $this; }
public function ToString() { return 'Done'; }
}
echo (new TestHtml)->Send()->Dispose()->ToString(); // there error
或者,您可以先创建对象,然后调用其他函数。
$object = new TestHtml;
echo $object->Send()->Dispose()->ToString();
而且只是为了好玩,您可以创建一个静态函数来创建类。
<?php
class TestHtml
{
public function Send() { return $this; }
public function Dispose() { return $this; }
public function ToString() { return 'Done'; }
public static function make() { return new self; }
}
echo TestHtml::make()->Send()->Dispose()->ToString();