0 レビュー
3 回答
PHPでifステートメントを書き直す
この条件付きifステートメントがあります:
if ( isset($_POST['x']) && empty($_POST['x']) && isset($_SESSION['x']) && $_SESSION['x'] )
$response['x'] = 1;
else
$response['x'] = 2;
たとえば、次のようにしたいと思います。
if ( !isset($_POST['iQapTcha']) || !empty($_POST['iQapTcha']) || !isset($_SESSION['iQaptcha']) || !$_SESSION['iQaptcha'] )
$response['captcha'] = 2;
exit();
新しいバージョンは正しいですか?またはこれは最善のアイデアではありませんか?
ありがとうございます。
わからない
0
レビュー
答え :
解決策:
それが正しいかどうかは、何をしたいかによって異なります。
否定したい条件がある場合は、すべてを !()
でラップできます:
if( a == b && c == d ) ...
// the negation is:
if( !( a == b && c == d ) ) ...
追加コメント: ( !isset( $x ) || !empty( $x ) ) == !empty( $x )
なので、2番目のステートメントを短縮できます
if( !empty($_POST['iQapTcha']) || !empty( $_SESSION['iQaptcha'] ) ) ...
わからない
0
レビュー
答え :
解決策:
はい、完全に正しいです。おそらく最良の選択肢です。 別の方法は
if !( isset($_POST['x']) && empty($_POST['x']) && isset($_SESSION['x']) && $_SESSION['x'] )
しかし、PHPがすべての変数を評価しなければならないほど良くはありません。オプションを使用すると、条件の1つが満たされたときに停止できます(ORであるため)
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。