2015-11-07 281 views
-1

我想知道什麼Java equals()在PHP中等效嗎?Java等於()相當於PHP

我想在if語句中使用它。

public function categories($lang) { 
    echo 'LANG IN INDEX CONTROLLER CATEGORIES BEFORE: ' . $lang.'<br>'; 
    if ($lang !== "az" || $lang !== "en" || $lang !== "ru") { 
     $lang = 'az'; 
    } 
    echo 'LANG IN INDEX CONTROLLER CATEGORIES AFTER: ' . $lang; 
    $db = new DBClass(); 
    $categories = $db->select("CALL SELECT_CATEGORY('$lang')"); 
    return $categories; 
} 

我送$ LANG參數 '恩',並導致 郎索引控制器類別BEFORE:恩 郎索引控制器類別AFTER:AZ

我tryed strcmp()

此代碼不起作用,什麼工作?如何在if語句中使用==strcmp()

+0

@約翰孔德是正確的。僅供參考:如果您想使用strcmp,請查看文檔 - > http://php.net/manual/en/function.strcmp.php。如果兩個字符串相等,則strcmp返回0。 – Eich

+0

我們都喜歡Java,但不幸的是,在PHP中,你必須得到一些「髒」。你總是可以編寫自己的equals(str1,str2)方法。 – lukescomputers

+0

@lukescomputers我猜OP的字符串比較需要像'String#equals'這樣的東西,但問題是OP的問題是如何檢查一個字符串不是一組字符串的一部分。 –

回答

7

行,因爲,因爲一個標量不可能一下子有三個值

if ($lang !== "az" || $lang !== "en" || $lang !== "ru") { 

永遠是正確的。您需要使用&&

if ($lang !== "az" && $lang !== "en" && $lang !== "ru") { 
+0

@Cohn Conde工作感謝您的幫助 –

4

另一種方法在PHP中做到這一點是使用in_array檢查,如果一個變量是一組值。既然你要檢查$lang"az""en""ru",那麼就否定結果:

$forbidden_langs = array("az", "en", "ru"); 
if (!in_array($lang, $forbidden_langs)) { 
    //your code goes here... 
} 
+0

好主意謝謝你的回答 –