考虑以下代码行:
<?php
$x = 10;
$y = 7;
echo '10 - 7 = '.$x-$y;
?>
那个的输出是3,也就是计算$x-$y的预期结果。然而,预期的输出是:
10 - 7 = 3
因此,我的问题是,我与计算连接的字符串发生了什么?我知道为了产生我期望的结果,我需要将算术运算括在括号中:
<?php
$x = 10;
$y = 7;
echo '10 - 7 = '.($x-$y);
?>
输出
10 - 7 = 3
但由于 PHP 不会提示原始代码,我想知道在这种情况下生成的输出背后的逻辑是什么?弦去哪儿了?如果有人能解释它或指出 PHP 手册中解释它的位置,我将不胜感激。
最佳答案
您的字符串 '10 - 7 = '
正在与 $x
连接。然后它被解释为 int
,结果为 10
,然后减去 7
,结果为 3
。
更多解释,试试这个:
echo (int) ('10 - 7 = ' . 10); // Prints "10"
有关字符串到数字转换的更多信息,请访问 http://www.php.net/manual/en/language.types.string.php#language.types.string.conversion。
If the string starts with valid numeric data, this will be the value used
关于php - 不带括号的字符串连接中的算术运算会导致奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7574624/