Я хочу проверить, если:
Можно ли проверить это с помощью инструкции if
?
Проверка, будет ли ===
делать трюк, но уведомление PHP. Должен ли я действительно проверять, установлено ли поле, и если это правда?
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; }
,$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