条件(三元)运算符 (?:)
条件运算符?: 接受三个操作数,是C# 中唯一的三元运算符。
视情况返回以下两个表达式之一。
test ? expression1 : expression2
test 为 true 时返回的表达式expression1 。可能是逗点表达式。
test 为 false 时返回的表达式expression2 。可能是逗点表达式。
?: 运算符可以用作 if...else 语句的快捷方式。
条件运算符(三元运算符)效率问题
先来看这段代码:
$name = GET('name') != null ? GET('name') : '';
function GET($key)
{
if (isset($_GET[$key]))
{
$fp = fopen('c.txt','a');
fwrite($fp, '1-');
fclose($fp);
return $_GET[$key];
}
return null;
}
运行后,发现c.txt文件中内容为 1-1-
显然,GET函数执行了两次。
以后还是以这种形式:
$name = GET('name');
$name = $name != null ? $name : '';
虽然代码有些长,但效率相对会小点(如果调用的是个占用内存很大的函数,问题就很明显了)
运算符优先级
时间: 2024-11-03 22:37:51