我正在建立一些簡單的驗證規則在PHP和我的IDE(phped)抱怨的語法。PHP這段代碼的語法有什麼問題?
任何人都可以告訴我什麼是以下錯?
function notBlank($str) {
(strlen($str) == 0) ? return false : return true;
}
的PhpED抱怨的 '意外收益'
讚賞任何意見。
謝謝。
我正在建立一些簡單的驗證規則在PHP和我的IDE(phped)抱怨的語法。PHP這段代碼的語法有什麼問題?
任何人都可以告訴我什麼是以下錯?
function notBlank($str) {
(strlen($str) == 0) ? return false : return true;
}
的PhpED抱怨的 '意外收益'
讚賞任何意見。
謝謝。
寫這樣的:
function notBlank($str){
return strlen($str) != 0;
}
寫這樣的:
function notBlank($str) {
return (strlen($str) == 0 ? false : true);
}
三元運營商中,你不能使用回。如果你想保住你的語法,你必須做這樣的事情:
function notBlank($str = '') {
$var = (strlen($str) == 0) ? false : true;
return $var;
}
不過做通知,做事的默認方式更爲清晰可辨:
function notBlank($str = '') {
if(strlen($str) == 0)
return false;
else
return true;
}
希望它能幫助!
不能說我喜歡「if(x)return false else return」類型的構造,當你可以使用「return!x」的時候。儘管如此,這實際上回答了查詢中出現問題的原始問題(而不僅僅是解釋執行此操作的另一種方法),因此可以使用+1。 – Beska 2009-10-26 21:06:37
strlen()
當字符串爲空時返回0,並在PHP 0==false
中返回。所以真的,沒有必要在功能中包裝strlen()
。如果你想堅持一個布爾的答案,然後投它。即:
(bool) strlen($string);
所以不是你的函數,這是assumably稱爲一個if塊,你得到的也
if(strlen($string)) //etc.
GSTO的答案似乎是這裏最好的,雖然你可能也想檢查從PHP的empty
功能:
無需這裏三元運算符。 – 2009-10-26 19:13:44
您可以刪除false或true,因爲操作符返回布爾值。 – Garrett 2009-10-26 19:15:03
當然,這只是我的編碼風格... – 2009-10-28 23:16:06