Php 用于在魔术引号字符串中回显类属性的语法

Php 用于在魔术引号字符串中回显类属性的语法,php,Php,我想用神奇的引号回显属性的值 $obj = new stdClass; $obj->foo = 123; echo "foo: ${obj->foo}"; 此操作失败,并显示以下错误消息: 分析错误:语法错误,中出现意外的T_对象_运算符 /第3行的foobar/test.php 我知道我可以这样写: echo "foo: ".$obj->foo; 但在这种情况下,花括号不也应该起作用吗?你的几乎是对的: echo "foo: {$obj->foo}"; 说: 任何

我想用神奇的引号回显属性的值

$obj = new stdClass;
$obj->foo = 123;
echo "foo: ${obj->foo}";
此操作失败,并显示以下错误消息:

分析错误:语法错误,中出现意外的T_对象_运算符 /第3行的foobar/test.php

我知道我可以这样写:

echo "foo: ".$obj->foo;
但在这种情况下,花括号不也应该起作用吗?

你的几乎是对的:

echo "foo: {$obj->foo}";
说:

任何带有字符串的标量变量、数组元素或对象属性 可以通过此语法包含表示。只需写下 表达式的显示方式与它在字符串外部的显示方式相同,并且 然后用{和}把它包起来。由于{不能转义,因此此语法将 只有在{之后紧接着美元时才能确认


我在回答的时候也应该提到这一点,但是这个表达式实际上不需要括号

echo "foo: $obj->foo";
应该可以正常工作。

您的基本正确:

echo "foo: {$obj->foo}";
说:

任何带有字符串的标量变量、数组元素或对象属性 可以通过此语法包含表示 表达式的显示方式与它在字符串外部的显示方式相同,并且 然后将其包装在{和}中 只有在{之后紧接着美元时才能确认


我在回答的时候也应该提到这一点,但是这个表达式实际上不需要括号

echo "foo: $obj->foo";

应该没问题。

把$sign移动一下,我的朋友

<?php
    $obj = new stdClass;
    $obj->foo = 123;
    echo "foo: {$obj->foo}";

只需移动$sign,我的朋友

<?php
    $obj = new stdClass;
    $obj->foo = 123;
    echo "foo: {$obj->foo}";