【问题标题】:What '{$x}' stands for? [duplicate]'{$x}' 代表什么? [复制]
【发布时间】:2016-12-25 07:36:33
【问题描述】:

我必须参加关于 php 的测试来评估我在该领域的知识。其中一个问题是,echo '{$x}'; 的输出是什么?由于我从未在函数调用之外看到过这种括号,所以我不知道。

答案是什么?

【问题讨论】:

  • 由于您使用单引号,它会回显{$x}
  • 另外看看单引号字符串和双引号字符串的区别PHP Dcs
  • @CasimiretHippolyte 问题是在某些情况下我缺乏足够的知识。并不是说它阻止我回答,但我肯定需要学习语法。

标签: php string syntax


【解决方案1】:

这似乎是一个技巧问题,首先看看你是否知道花括号在 PHP 字符串中的用途,还要看看你是否知道 double 和 double 之间的区别PHP 字符串中的单引号,其中不计算单引号而计算双引号,例如:

$name = "bob";
echo "hello $name"; // hello bob
echo 'hello $name'; // hello $name

我猜他们是在假设您会看到花括号,它们用于隔离字符串中的变量并在不查看引号的情况下给出答案:

$place = 3;
echo "you are {$place}rd in the line"; // you are 3rd in the line
echo "you are $placerd in the line"; // error, $placerd is not defined
echo 'you are {$place}rd in the line';  // you are {$place}rd in the line

【讨论】:

  • 所以"you are {$place}rd in the line" 等价于"you are".$place."rd in the line"?
  • 是的,输出将完全相同。花括号仅用于分隔(隔离)双引号字符串中的 PHP 变量,因此在上面的示例中将变量($place)与字符串的"rd" 部分分开
【解决方案2】:

当您使用单引号 (') - 例如在这种情况下:echo '{$x}';,变量$x 不会受到任何影响。这意味着单引号内的所有内容都将被解释为字符串,并且echoed 返回逐字。 但是,如果您使用双引号而不是像这样的单引号:echo "{$x}";,这将导致评估 $x 的值,结果将是 echoed。请参阅Documentation 了解更多信息。

【讨论】:

    猜你喜欢
    • 2016-05-02
    • 2011-07-10
    • 2010-11-29
    • 2013-12-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 2015-09-16
    相关资源
    最近更新 更多