PHP, забавное поведение при попытке взять элемент массива
29 ноября, 2013
Посмотрим будут ли ошибки если пытаться получать элемент массива переменной с различными значениями:
igor@iad2:~$ php -a Interactive shell php > $a = false; php > var_dump($a['abc']); NULL php > $a = 1; php > var_dump($a['abc']); NULL php > $a = 10; php > var_dump($a['abc']); NULL php > $a = '10'; php > var_dump($a['abc']); string(1) "1" php > $a = array(); php > var_dump($a['abc']); PHP Notice: Undefined index: abc in php shell code on line 1 NULL php > $a = null; php > var_dump($a['abc']); NULL php > $a = new StdClass();; php > var_dump($a['abc']); PHP Fatal error: Cannot use object of type stdClass as array in php shell code on line 1 igor@iad2:~$ |
Идея в том, что нужно всегда проверять переменную на is_array() или !empty(), прежде чем брать у неё элемент массива