无法弄清楚为什么我的代码在与标签标签连接时不会正确返回总和。 但如果在单独的回声中它可以正确地生成总和
if(isset($_POST['add'])){
if(!empty($_POST['num1'])&&!empty($_POST['num2']))
{
$a = $_POST['num1'];
$b = $_POST['num2'];
//this works
echo '<label id="sumLabel"> sum = ';
echo $a+$b;
echo '</label>';
//this doesnt work
//why wont this code display num of a and b?
//instead it returns just value of b
//isnt my code above just the same as this?
echo '<label id="sumLabel"> sum = ' . $a+$b . '</label>';
}
else {
echo 'PLEASE INPUT num1 num2';
}
}
答案 0 :(得分:1)
将括号()
内的变量求和。试试这个..
echo '<label id="sumLabel"> sum = ' . ($a+$b) . '</label>';
答案 1 :(得分:1)
因为连接和总和具有相同的优先级。他们也是联系在一起的。
所以操作按此顺序执行:
$a = 1;
$b = 2;
echo ((('<label id="sumLabel"> sum = ' . $a) + $b) . '</label>');
// results
// first concatenation ^'<label id="sumLabel"> sum = 1'
// summing ^ 2
// second concatenation, final result ^ '2</label>'
让我们探索它。
'<label id="sumLabel"> sum = ' . 1
- &gt;整数转换为字符串,然后与其他字符串连接 - &gt; '<label id="sumLabel"> sum = 1'
'<label id="sumLabel"> sum = 1' + 2
- &gt;字符串转换为整数(给出0)并与其他整数求和 - &gt; 2 2 . '</label>'
- &gt;像第一个一样,整数转换为字符串,然后与其他字符串连接 - &gt; '2</label>'
。为避免这种情况,您可以添加括号。
echo '<label id="sumLabel"> sum = ' . ($a+$b) . '</label>';