Welcome 微信登录

首页 / 网页编程 / ASP.NET / 三元运算符-条件(三元)运算符效率问题

三元运算符-条件(三元)运算符效率问题2011-07-26网魂工作室条件(三元)运算符 (?:)

条件运算符?: 接受三个操作数,是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 : "";

虽然代码有些长,但效率相对会小点(如果调用的是个占用内存很大的函数,问题就很明显了)

运算符优先级