Xét đoạn mã sau:Tại sao gọi các thuộc tính có thể gọi trong PHP 7 hoạt động?
interface Doll
{
/**
* @return string
*/
function __invoke();
}
class LargeDoll
{
private $inner;
function __construct(Doll $inner)
{
$this->inner = $inner;
}
function __invoke()
{
return $this->inner() . ' world';
}
}
này sẽ không làm việc vì nó là hy vọng $this->inner
trở thành một phương pháp, chứ không phải là một tài sản có thể được gọi.
Sau đó, nó xảy ra với tôi, giống như việc có (new LargeDoll)();
sẽ hoạt động, còn nếu tài sản được gói trong dấu ngoặc đơn thì sao? Vì vậy, tôi thử nghiệm nó trên 3v4l:
return ($this->inner)() . ' world';
And found that it works for PHP 7, but not for previous versions.
Tuy nhiên, tôi không thể tìm thấy bất kỳ đề cập đến in the changelogs này.
Tôi có thể tìm thêm thông tin về tính năng này ở đâu?