echo中的{}标记"{$ e-> getMessage()}"

Gus*_*ooL 4 php

我读到了这篇文章, 我想知道这部分:

try {
    //First try getting our user numero uno
    $user = new User(1);

    //Then, let's try to get the exception
    $user2 = new User('not numeric');
} catch( Exception $e ) {
    echo "Donkey Kong has caught an exception: {$e->getMessage()}";
}
Run Code Online (Sandbox Code Playgroud)

为什么{$e->getMessage()}必须用括号括起来?
有关于这个的PHP手册有任何链接说明吗?

我知道如果我们不放括号它会显示错误,但我想要的是得到解释为什么需要括号.

注意:未定义的属性:Exception :: $ getMessage

Mat*_*ins 19

这与这是一个复杂的表达这一事实有关.如果您不包括括号,即:

echo "Donkey Kong has caught an exception: $e->getMessage()";
Run Code Online (Sandbox Code Playgroud)

...那么PHP如何知道您要输出的变量?您可能正在尝试执行以下任何操作:

  • 输出值$e,后跟字符串" - > getMessage()"
  • 输出值$e->getMessage,后跟字符串"()"
  • 输出值 $e->getMessage()

将括号放在完整表达式周围会告诉PHP需要计算并包含在字符串中的完整表达式.