php - { } 标记在 echo "{$e->getMessage()}"

标签 php

我读到了这个Article 我想知道这部分:

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()}";
}

为什么 {$e->getMessage()} 必须包含在括号中?
php手册上有关于这个的任何链接解释吗?

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

Notice: Undefined property: Exception::$getMessage

最佳答案

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

echo "Donkey Kong has caught an exception: $e->getMessage()";

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

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

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

关于php - { } 标记在 echo "{$e->getMessage()}",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8671793/

相关文章:

php - 在 Windows 上的 XAMPP 上为 PHP 安装 couchbase 客户端 SDK

javascript - Facebook Bigpipe,做得对还是不对?

php - Prestashop 从其 id 获取产品属性

php - 如果存在重定向,Google 机器人是否会抓取整个网站

php - 更新单个单元格 MySQL PDO

php - 如何拆分 mySQL 信息以在 HTML 列中显示

php - Laravel 5 无需密码登录

php - HTML - 更改\更新页面内容而不刷新\重新加载页面

php - Symfony 上传的文件无法在 azure 上读取

javascript - Laravel 表单抛出方法异常错误(到处检查帖子)