3

我是PHP新手。我在WordPress中遇到過這種語法。代碼的最後一行是幹什麼的?

$page = $_SERVER['REQUEST_URI']; 
$page = str_replace("/","",$page); 
$page = str_replace(".php","",$page); 
$page = $page ? $page : 'default' 
+0

哇!反應熱烈.. :)感謝 – jest

+0

[參考? - 這是什麼符號在PHP意味着]可能重複(http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in- php) – outis

回答

7

這是the ternary operator

這條線轉化爲

if ($page) 
    $page = $page; 
else 
    $page = 'default'; 
+1

你是什麼意思的「條件操作符」。你是不是指「三元運營商」(有條件的運營商之一*** ***)? –

+0

我原本寫了「三元操作符」。 @Ether編輯它並將其更改爲「條件」。好奇。 – echo

+0

「三元運算符」含糊不清,因爲可能有多個運算符。 – Ether

2

這意味着,如果$頁沒有一個值(或者是零),將其設置爲 '默認'。

1

最後一行的更詳細的語法是:

if ($page) 
{ 
    $page = $page; 
} 
else 
{ 
    $page = 'default'; 
} 
1

這意味着如果$ page變量是不是空的,則分配在最後一行的$頁面變量,變量或將其設置爲「默認」頁面名稱。

It is called conditional operator

+0

它被錯誤地命名爲**三元運算符,它真的只是一個**三元運算符。當然,在大多數語言中,它是唯一實現的三元運算符,但並不排除創建其他運算符需要3個參數。例如,一種語言可以有一個用於聲明函數的運算符,就像Forth的':'運算符一樣,它可以在函數名,參數列表和代碼塊上運行。這也將是一個三元運營商。 – slebetman

+0

「條件運算符」?你不是指「三元運算符」嗎? –

0

這就是所謂的conditional operator。它的功能類似於if-else語句, 所以

$page = $page ? $page : 'default'; 

不一樣

if($page) 
{ 
    $page = $page; 
} 
else 
{ 
    $page = 'default'; 
} 
+0

參考文獻說它是三元運算符(或三元運算符?),是條件運算符之一。你能詳細說明嗎? –

3

這是一個ternary operation這不是PHP或WordPress的特定,它存在於大多數漢語語言。

(condition) ? true_case : false_case 

因此,在這種情況下,$頁的值將是「默認」,即$頁面類似於假的東西 - 否則將保持不變。