PHP中的这种语法是什么?
问题描述:
我正在修改剧本,以更好地满足我的需求,我在代码跨越这条线进来:PHP中的这种语法是什么?
return isset($_COOKIE[$parameter_name]) ? $_COOKIE[$parameter_name] : "";
我知道本身的功能本质上是一个cookie的getter方法,但我不太清楚该语法(即“?”和“:”)的含义。我很抱歉,如果这是一个非常愚蠢的问题,但有人可以解释给我?
答
这是一个ternary operation,基本上是一个更紧凑的方式写一个if/then/else。
所以,你的代码示例中它被使用,而不必写:
if (isset($_COOKIE[$parameter_name])) {
return $_COOKIE[$parameter_name];
} else {
return "";
}
答
的? :是三元操作符。它是一种非常快的,如果那么b,否则C:
if (a) { return b; } else { return c; }
等同于:
return a ? b : c;
答
这是一个ternary operation这是不是PHP具体,存在于大多数汉语语言。
(condition) ? true_case : false_case
在我看来,应该只用于你的例子中的短一行。否则可读性会受到影响 - 因此不要嵌套三元操作(尽管可以这样做)。
答
return isset($_COOKIE[$parameter_name]) ? $_COOKIE[$parameter_name] : "";
函数返回:
$_COOKIE[$parameter_name]
如果$ _COOKIE与指定PARAMETER_NAME存在,空字符串,否则。
原型:
condition ? this runs if condition true : this runs if condition false;