你好,我想通过一个函数显示一个表格:
<?
function foo($array){
return '<table><tr>
<td>'.$array['val'].'</td>
<td>'.$array['bar'] + $array['num'].'</td>
</tr></table>';
}
?>
网页
<html>
...
<? $array = array('val'=>5, 'bar'=>8, 'num'=>3); ?>
<? print foo($array); ?>
...
</html>
但是出了点问题,有些数字没有表格标签就输出了,这可能是什么问题?
操作优先级/顺序的问题。
如果我们看一下PHP: Operator Precedence,我们可以看到
.
and运算符+
具有相同的优先级和左结合性。这意味着随着代码的进行,操作将从左到右进行。
也就是说,首先将一个数字
<td>
连接到字符串,然后将一个数字添加8
到结果字符串。本例中的字符串将被解释为数字。结果,我们得到了丢失的线。'<td>8'
3
0
0 + 3 = 3
因此,正如您自己已经弄清楚的那样,您需要放置括号。
谢谢大家,我自己找到了答案,问题原来是函数中的算术运算,需要带括号