2015-11-07 147 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

好主意谢谢你的回答 –