首页 » PHP和MySQL Web开发(原书第4版) » PHP和MySQL Web开发(原书第4版)全文在线阅读

《PHP和MySQL Web开发(原书第4版)》1.12 理解操作符的优先级和结合性

关灯直达底部

一般地说,操作符具有一组优先级,也就是执行它们的顺序。

操作符还具有结合性,也就是同一优先级的操作符的执行顺序。这种顺序通常有从左到右(简称左)、从右到左(简称右)或者不相关。

表1-7给出了PHP操作符的优先级和结合性。在这个表中,最上面的操作符优先级最低,按着表的由上而下的顺序,优先级递增。

请注意,我们还没有包括优先级最高的操作符:普通的圆括号。它的作用就是提高圆括号内部操作符的优先级。这样,在需要的时候,就可以避开操作符的优先级法则。

请记住这一部分的一个例子:

$totalamount=$totalamount*(1+$taxrate);

如果写成:

$totalamount=$totalamount*1+$taxrate;

乘号就具有比加号更高的优先级,从而优先进行计算,这样就会得到一个错误的结果。

通过使用圆括号,可以强制先计算1+$taxrate子表达式。

可以在一个表达式中使用任意个圆括号,最里层圆括号的表达式将最先计算。

在上表中,另一个需要注意的但没有介绍的操作符是print语言结构,它等价于echo语句。这两个结构都将生成输出。

通常,在本书中,我们会使用echo,但是如果你认为print更容易阅读,也可以使用print语句。print和echo都不是真正的函数,但是都可以用带有参数的函数形式进行调用。二者都可以当作一个操作符:只要将要显示的字符串放置在echo或print关键字之后。

以函数形式调用print将使其返回一个值(1)。如果希望在一个更复杂的表达式中生成输出,这个功能可能是有用的,但是print要比echo的速度慢。