在计算操作之前在 php 中显示 "text" 时出错

Error displaying "text" in php before calculating the operation

我想在打印计算输出之前打印一段文本,而不将文本存储在变量中。我怎样才能做到这一点?

这是我的代码:

$x = 5;
$y = 10.5;
  echo "add: 5+6 =" . $x + $y;

此代码计算加法 $x + $y,然后转换为字符串,然后连接为字符串 "add: 5+6="(参见 https://www.php.net/manual/en/function.strval.php

$x = 5;
$y = 10.5;
echo "add: 5+6 = ". strval($x + $y);

关于您的代码

参见 https://www.php.net/manual/en/language.operators.precedence.php:串联运算符的优先级高于算术运算符。

您的原始代码与:

相同
$x = 5;
$y = 10.5;
echo (int)("add: 5+6 =" . $x) + $y;

这意味着:首先,连接字符串 "add: 5+6 =" 。 $x

add 5+6 =5

然后转换为 int (即 return 0)

(int)("add: 5+6 =5")

然后添加 $y

0 + 10.5

然后回显它

echo 10.5;

所以这就是为什么你的代码 return 10.5

你可以试试这个。

<?php
    $x = 5;
    $y = 10.5;
    $z = $x + $y;
    echo "add: 5+6 = " . $z;
?>
<?php
  $x = 5;
  $y = 10.5;
  printf("add: 5+6 = %f", $x + $y);
?>

<?php
$x = 5;
$y = 10.5;

echo "add: 5+6 =" . ($x + $y); // automatic converts to `string`

试试这个:

$x = 5;
$y = 10.5;
$z=$x+$y;
echo "add:5+6 =".$z;

你可以通过连接一个变量来做到这一点

<?php
$x = 5;
$y =10.5;
$z=$x+$y;

echo "add: ".$x."+".$y." = ". $z;
?>

输出

add: 5+10.5 = 15.5