次のことを確認したい:
- 配列 isset 内のフィールド
- フィールド === true
if
これを1つのステートメントで確認することは可能ですか?
トリックを実行するかどうかを確認===
しますが、PHP 通知がスローされます。フィールドが設定されているかどうかを確認し、それが true であるかどうかを本当に確認する必要がありますか?
次のことを確認したい:
if
これを1つのステートメントで確認することは可能ですか?
トリックを実行するかどうかを確認===
しますが、PHP 通知がスローされます。フィールドが設定されているかどうかを確認し、それが true であるかどうかを本当に確認する必要がありますか?
if (isset($var) && ($var === true)) { ... }
さて、あなたは通知を無視することができます(別名、error_reporting()
関数を使用して表示からそれを削除します)。
@
または、邪悪なキャラクターでそれを抑制することができます:
if (@$var === true) { ... }
このソリューションは推奨されません
私はこれがトリックをするべきだと思います...
if( !empty( $arr['field'] ) && $arr['field'] === true ){
do_something();
}
オルタナティブ、楽しみのためだけに
echo isItSetAndTrue('foo', array('foo' => true))."<br />\n";
echo isItSetAndTrue('foo', array('foo' => 'hello'))."<br />\n";
echo isItSetAndTrue('foo', array('bar' => true))."<br />\n";
function isItSetAndTrue($field = '', $a = array()) {
return isset($a[$field]) ? $a[$field] === true ? 'it is set and has a true value':'it is set but not true':'does not exist';
}
結果:
it is set and has a true value
it is set but not true
does not exist
代替構文も:
$field = 'foo';
$array = array(
'foo' => true,
'bar' => true,
'hello' => 'world',
);
if(isItSetAndTrue($field, $array)) {
echo "Array index: ".$field." is set and has a true value <br />\n";
}
function isItSetAndTrue($field = '', $a = array()) {
return isset($a[$field]) ? $a[$field] === true ? true:false:false;
}
結果:
Array index: foo is set and has a true value