示例
<?php
//执行一次
function test1() {
static $count = 1;
return $count++;
}
//执行两次
function test2() {
static $count = 1;
return $count++;
}
echo test1() ? : 'notest'; //执行一次
echo test2() ? test2() : 'notest'; //执行两次
说明
自 PHP 5.3 起,可以省略三元运算符中间那部分。表达式 expr1 ?: expr3 在 expr1 求值为 TRUE 时返回 expr1,否则返回 expr3。
注意到这里,在 expr1 求值为 TRUE 时返回 expr1
,这里的意思是直接返回前面执行的结果,而不是再执行一遍,所以,
echo test1() ? : 'notest';
的结果是执行了test1()一遍,而
echo test2() ? test2() : 'notest';
的结果是执行了test2()两遍。
未经同意禁止转载!
转载请附带本文原文地址:PHP三元运算特例,首发自 Zjmainstay学习笔记