为什么我收到此通知当我通过array_key_exist进行检查时

时间:2018-03-29 17:45:30

标签: php

请告诉我为什么在使用array_key_exists时收到此消息?

 <td width="91">'.(array_key_exists ( 1 , $famstand )) ? $famstand[1] : "" .'</td>

未定义的偏移量:1

1 个答案:

答案 0 :(得分:4)

问题是运营商优先级。 .的优先级高于:?,因此将其解析为:

('<td width="91">'.(array_key_exists ( 1 , $famstand ))) ? $famstand[1] : "" .'</td>'

concanetation返回一个非空字符串,即使密钥不存在也是真的,所以它试图访问数组元素。

在第三方附近添加括号:

<td width="91">'.(array_key_exists(1 , $famstand) ? $famstand[1] : "") .'</td>