我无法在PHP中比较两个字符串

ilh*_*han 1 php string comparison-operators

    <?php
    $gender = "devilcode";
    if (($gender == "female") || ($gender = "male"))
        {
            echo "ok";
        }
    else echo "no";
    ?>
Run Code Online (Sandbox Code Playgroud)

它应输出"no"但输出"ok".我究竟做错了什么?

Jak*_*e N 13

你指定$gender是男性,而不是测试它进行比较,你需要两个相同的标志:

$gender = "devilcode";
if (($gender == "female") || ($gender == "male"))
    echo "ok";
else 
    echo "no";
Run Code Online (Sandbox Code Playgroud)


Ale*_*sky 7

你错过了一个等号:

($gender == "male")
Run Code Online (Sandbox Code Playgroud)

编辑:由于这个原因,许多程序员建议用另一种方式编写比较,左边是静态值:

if ("male" == $gender) { ... }
Run Code Online (Sandbox Code Playgroud)

这样,如果您忘记并使用=而不是==,则会出现语法错误.


Ras*_*ika 5

IF的第二部分是$gender="male"?我认为这总是会回归真实并导致问题.做了$gender=="male"