douying4909 2018-03-29 17:45
浏览 38
已采纳

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

Please tell me why I receive this message While I use array_key_exists?

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

Undefined offset: 1

  • 写回答

1条回答 默认 最新

  • dtrotfd1012 2018-03-29 17:52
    关注

    The problem is operator precedence. . has higher precedence than :?, so this is being parsed as:

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

    The concanetation returns a non-empty string, which is truthy, even though the key doesn't exist, so it's trying to access the array element.

    Add parentheses around the tertiary:

    <td width="91">'.(array_key_exists(1 , $famstand) ? $famstand[1] : "") .'</td>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?