可能重複:
What is the PHP ? : operator called and what does it do?PHP語法與?和:
我找到了答案,這是我一直在尋找,但我不太明白的語法,因爲他們使用,我認爲,短標籤。這裏是代碼:
$temp = is_array($value) ? $value : trim($value);
有人可以解釋這是如何工作的?我認爲這意味着如果真的,返回值,如果虛假返回值修剪,但我不知道。能有兩種以上的選擇,還是嚴格對錯?
可能重複:
What is the PHP ? : operator called and what does it do?PHP語法與?和:
我找到了答案,這是我一直在尋找,但我不太明白的語法,因爲他們使用,我認爲,短標籤。這裏是代碼:
$temp = is_array($value) ? $value : trim($value);
有人可以解釋這是如何工作的?我認爲這意味着如果真的,返回值,如果虛假返回值修剪,但我不知道。能有兩種以上的選擇,還是嚴格對錯?
你是對的。這是一個條件運算符,?:
是一個三元運算符。
<?php
// Example usage for: Ternary Operator
$temp = is_array($value) ? $value : trim($value);
// The above is identical to this if/else statement
if (is_array($value)) {
$temp = $value;
} else {
$temp = trim($value);
}
?>
看看一半時該頁面瞭解更多信息:
它被稱爲* the *三元運算符,只要`.`被稱爲*二元運算符:P – alex 2010-12-07 02:18:19
它相當於
if (is_array($value)){
$temp = $value;
}
else{
$temp = trim($value);
}
它基本上是與
01相同if(is_array($value)) {
$temp = $value;
} else {
$temp = trim($value);
}
$condition ? true : false
,該?
指令一樣
if($condition)
true
else
false
所以在你的例子作爲
if(is_array($value))
$temp = $value
else
$temp = trim($value);
你是正確的代碼是一樣的。如果is_array($value)
返回true,則表達式設置,否則爲$temp = trim($value)
。
嚴格的兩種選擇。你解釋正確。
if (is_array($value)) $temp = $value;
else $temp = trim($value);
如果你想破解這個語法有3個值,你可以做$temp = (condition1) ? true : (condition2) ? true2 : false;
事實上,雖然可能值得添加圓括號以進行更清晰的分組:$ temp = $ condition1? 'val1':($ condition2?'val2':'val3');`有些人認爲以這種方式鏈接三元運算符本質上難以閱讀。因人而異。 ;-) – 2010-12-07 03:23:26
這是三元運算符。它會在之前轉換exp嗎?到一個布爾。如果你想要更多的選擇,只需結合多?:。
(con?trueorfalseiftrue:otherwise)? (con2?_:_):(con3?_:_)
此外:[參考 - 這個符號在PHP中有什麼意思?:&=&! @ :: => - > >> ++。=](http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php) – mario 2010-12-07 02:23:54