2

だから私はこのスニペットを持っています:

function compare1($s1, $s2)
{
    return $s1===$s2;
}

function compare2($s1, $s2)
{
    return !strcmp($s1, $s2);
}

function challenge($s1, $s2) //Objective: return TRUE
{
    return compare1($s1, $s2) ^ compare2($s1, $s2);
}

私に要求されたのは、最後の関数が TRUE を返すように、$s1 変数と $s2 変数に値を指定/追加/割り当てすることです。

$s1='1' and $s2=1TRUEを返すものなど、考えられるほとんどすべてを試しました。

var_dump(compare1('1', 1) ^ compare2('1', 1)); // 出力: int 1

チャレンジの作成者は、整数値を変数に割り当てるべきではない、または割り当てることができないと私に言いましたが、問題はブール値のバリエーションが機能しないことです。解決策を思いつくことができるかどうかを確認できるように、私が話しているWebサイトは次のとおりです。http://securitytraps.no-ip.org/challs/strcmp/

前もって感謝します :)

4

2 に答える 2

2

どうですか

$s1= null;
$s2 = "";

これは、提供されているツールでは機能しませんが、コマンド ラインからは機能します。

また

$s1 = "";
$s2 = false;
于 2013-07-03T22:16:20.113 に答える