Проверьте, существует ли Variable и === true

Я хочу проверить, если:

  • поле в массиве isset
  • поле === true

Можно ли проверить это с помощью инструкции if ?

Проверка, будет ли === делать трюк, но уведомление PHP. Должен ли я действительно проверять, установлено ли поле, и если это правда?

Solutions Collecting From Web of "Проверьте, существует ли Variable и === 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; } , $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