2010-07-30 143 views
0

我只想從下面的代碼知道什麼?:指定,如果有人解釋我下面的代碼,我將不勝感激。謝謝一個簡單的PHP語法問題

$country = empty($_POST['country']) ? die ("ERROR: Enter a country") : mysql_escape_string($_POST['country']); 
+0

的可能重複[快速PHP語法問題(HTTP ://stackoverflow.com/questions/889373/quick-php-syntax-question)來吧,這是幾乎相同的標題;) – 2010-07-30 12:05:13

回答

3

它被稱爲三元運營商,僅僅是這個代碼的速記

if (empty($_POST['country'])) 
{ 
    die ("ERROR: Enter a country"); 
} 
else 
{ 
    $country = mysql_escape_string($_POST['country']); 
} 

語法:

condition ? used if true : used if false; 

或者你可以做的任務:

variable = condition ? used if true : used if false; 

更多信息:

http://www.tuxradar.com/practicalphp/3/12/4

+0

謝謝我期待這樣的答案,我不習慣速記..謝謝你對此回覆..:) – 2010-07-30 12:05:04

+0

好的答案+1,但你忘了給'else'塊添加'$ country =' – 2010-07-30 12:05:07

+0

@Igor Zinov'yevL是的忘了補充一點,謝謝:) – Sarfraz 2010-07-30 12:06:47

1

我想這腳本從通過POST方法發送的形式接受數據。如果country變量爲空,則退出腳本並顯示錯誤消息。

mysql_escape_string($_POST['country']);

該函數返回躲過給變量的值。因此,應該這樣寫

$country = mysql_escape_string($_POST['country']);

此處瞭解詳情:http://php.net/manual/en/function.mysql-escape-string.php

1
$country = empty($_POST['country']) ? 
      die ("ERROR: Enter a country") : 
      mysql_escape_string($_POST['country']); 

如果表達式empty($_POST['country'])計算結果爲true,然後die ("ERROR: Enter a country")進行評估(和重新sult將被分配到$country,但由於die()會暫停腳本執行)。

另一方面,如果empty($_POST['country'])評估爲false,那麼mysql_escape_string($_POST['country'])將被評估,並且結果將被分配給$country

+0

您好, in else condidtion i我想嘗試使用串聯,它不會發生..檢查最後一個字符串 $ user = empty($ _ POST ['user'])?死(「錯誤:請輸入用戶名」):mysql_escape_string($ _ POST ['user'])。回聲「$ _SERVER ['PHP_SELF']」; 我該如何做到這一點? – 2010-07-30 13:27:35

+0

我不確定你想要達到什麼目的。如果你使用'$ user = empty($ _ POST ['user'])? die(「Error:Please enter username」):mysql_escape_string($ _ POST ['user'])。$ _ SERVER ['PHP_SELF'];'然後假設對'empty()'的調用返回false,'$ User'將會'mysql_escape_string($ _ POST ['user'])'與'$ _SERVER ['PHP_SELF']'連接。如果你實際上想有條件地回聲一些東西,或許你最好用「if ... else」方法。 – Hammerite 2010-07-31 00:31:01

1

它的測試條件:如果從HTML表單變量爲空,然後打印出「ERROR:輸入國家或地區」,否則設置變量國家安全角色..