1

問題が発生しています。

ケースを別の関数に渡して実行する再帰関数を使用しています。

問題は、私が次のことをしていることです:

if ($case == 1 || count($matching) == 0 && $case == NULL)
    do something....

したがって、$case == 1OR の場合のみ、$matching > 0および$case == NULL

PHPが正しく認識していないようです。

実際、$case == 1実行$matching > 0されるべきでなくても「何かを実行」する$matching > 0場合$caseは実行されますalso == NULL

どうしたの?

ANDの場合のみ$case == 1OR ONLYの場合のみ実行するように PHP に指示するにはどうすればよいですか?$matching > 0$case == NULL

4

3 に答える 3

3

XOR 論理演算子の使用(XOR は排他的 OR から派生します):

if ($case == 1 xor ($matching > 0 && $case == null)) { ... }
于 2013-08-01T17:03:17.600 に答える
0

これを試してみてください。これにより、最後の 2 つの条件がグループ化され、両方が true である場合にのみ、これら 2 つの結果が true になります。

if ($case == 1 || (count($matching) > 0 && $case == NULL)){
}
于 2013-08-01T17:03:21.297 に答える