【问题标题】:How to perform arithmetic operations inside concatenating string in PHP? [duplicate]如何在 PHP 中的连接字符串中执行算术运算? [复制]
【发布时间】:2016-06-26 14:08:47
【问题描述】:

这段代码:

$a = "100";
echo "abc" . $a - 1;

打印出-1 而不是abc99

明显的解决方法是:

$a = "100";
$tmp = $a - 1;
echo "abc" . $tmp;

但是有没有办法在不创建临时变量的情况下计算$a - 1

【问题讨论】:

  • echo "abc" .( $a - 1); 只需将您的计算括在括号中
  • 参见docs.php.net/language.operators.precedence:“如果需要,可以使用括号强制优先级。例如:(1 + 5) * 3 计算结果为 18。”

标签: php concatenation


【解决方案1】:

我会使用sprintf 打印连接,因为您有更多的控制力和灵活性。

echo sprintf("abc%d" , $a - 1;");

这样您可以确保计算是自己执行的,您还可以使用其他强大的sprintf 功能。

【讨论】:

  • 我强烈(!)同意:让您的代码清晰明了。 PHP 是一种非常模棱两可的语言,它尝试(太难了...) 来“做它认为你的意思”。努力使您的代码“在肉眼看来是显而易见的、明确的”。如果这意味着使用临时工,那就去做吧。如果这意味着sprintf 如此处所示,请执行此操作。
猜你喜欢
  • 2012-08-13
  • 2013-02-19
  • 1970-01-01
  • 2017-01-10
  • 2017-04-15
  • 1970-01-01
  • 2023-01-13
  • 1970-01-01
  • 2012-09-12
相关资源
最近更新 更多