编辑以澄清问题。问题在于 PHP 将在字符串中接受什么语法,而不是属性是否未定义。
PHP 允许对象属性出现在字符串中,如下所示:
$a->b = "Hello, World!"
echo "PHP says: $a->b";
但是,如果您尝试访问对象更深的属性,则会发生致命错误:
$a->c->d = "Hello, World!"
echo "PHP says: $a->c->d";
您必须将引用放在字符串之外才能使其工作:
$a->c->d = "Hello, World!"
echo "PHP says: " . $a->c->d;
为什么 PHP 语法不接受字符串中的这种形式?