首页 > 解决方案 > 解析字符串中的算术

问题描述

我正在尝试使用字符串解析对字符串中的变量进行简单的添加,如下所示:

$a = 2;
echo("I have {$a+1} eyes");

但是当我这样做时 PHP 崩溃了。

我也试过{++$a},但输出为I have {++2} eyes.

用于字符串解析的 PHP 手册页没有涵盖字符串中的算术的示例。

这是可能的吗?

标签: phpstring

解决方案


通过变量插值是不可能的。它不接受操作作为参数。它接受的内容可以在这个问题中阅读。

备择方案:

  1. 首先将结果存储到变量中。有点多余的步骤,但它是一种通过插值来实现的方法。
$a = 2;
$b = $a + 1;
echo "I have {$b} eyes";
  1. 使用串联。不要忘记用括号括起来,因为数学运算符不优先于连接。
$a = 2;
echo "I have ".($a + 1)." eyes";
  1. 使用格式打印功能。请注意,printf输出字符串,同时sprintf返回它,因此您必须显式输出后者。
$a = 2;
printf("I have %d eyes", $a + 1);
echo sprintf("I have %d eyes", $a + 1);

推荐阅读