我们可以在双引号内做一些算术运算吗?

wee*_*eix 5 php double-quotes

我想知道我们是否可以在字符串引号内进行一些算术运算,例如 $x+$y?

// Expected result is:
// 5 + 11 = 16
echo "$x + $y = {$x+$y}"; // Parse error
echo "$x + $y = {$x}+{$y}"; // 5 + 11 = 5+11
echo "$x + $y = ${x+y}"; // 5 + 11 =
Run Code Online (Sandbox Code Playgroud)

hak*_*kre 8

我想知道我们是否可以在字符串引号内进行一些算术运算,例如 $x+$y?

是的你可以。您可以让 PHP 计算算术运算,然后将其分配给变量并输出。

您也可以在双引号字符串 ( Demo ) 中执行此操作:

<?php
// @link http://stackoverflow.com/a/18182233/367456
//
// Expected result is:
// 5 + 11 = 16

$x = 5;
$y = 11;

echo "$x + $y = ${0*${0}=$x + $y}"; # prints "5 + 11 = 16"
Run Code Online (Sandbox Code Playgroud)

然而,这可能不是你要找的。

  • 方括号允许您提供字符串表达式作为变量名。这里的表达式是`0`,所以变量是`$0`(没有括号就不能写,否则会是一个无效的变量名语法)。由于您可以将表达式放在括号中,因此它还用于将“$x + y$”的结果分配给该“${0}”变量,然后乘以零得到零(不适用于 INF 或 NAN计算)。 (2认同)