对PHP有了一定了解的程序猿们,看到 ?: 这个东西的时候,并不会感到陌生,他就是很牛逼的一个语法结构:三目运算符。
三目运算符的用法如下:
(expr1) ? (expr2) : (expr3)
当 expr1 为 true 的时候,将会返回 expr2 的值,当 expr1 为 false 的时候,将会返回 expr3 的值。
不过从 PHP 5.3 版本开始,三目运算符已经不限于上面的运算方式了。他还可以这样用:
(expr1) ?: (expr2)
也就是将 ?: 连在一起了。 如果采用这种用法,则当 expr1 为 true 的时候,将会返回 expr1 本身,当 expr1 为 false 的时候,着返回 expr2 的值。
这是一个相当有用的写法,所以 Hy369 就迫不及待地要把这个写入自己的 PHP博客中,以方便各位朋友知晓了!
特别提醒: 注意三元运算符是个语句,因此其求值不是变量,而是语句的结果。如果想通过引用返回一个变量这点就很重要。在一个通过引用返回的函数中语句 return $var == 369 ? $a : $b; 将不起作用,以后的 PHP 版本会为此发出一条警告。
以上就是笔记015 PHP中?:的特殊用法的内容,更多相关内容请关注PHP中文网(www.php.cn)!