isset()和$arr['image']中image未定义的迷惑

一、解说isset().

if (isset($upload['error']) && $upload['error'] > 0){
        return false;
 }

  一日看别人写的代码,很纳闷:既然有$upload['error'] > 0这个判断,那为何还要做isset($upload['error'])这个判断呢?

  经询问,一个朋友的解说一语点睛:PHP是弱语言,数组下标不存在不会影响程序正常运行,但是默认会提示一个消息。

  我明白了:

    以前总是看到isset()函数的定义,说判断该变量是否设置什么的,怎么看怎么都很迷惑。现在才知道,这里可以判断$upload['error']中的"error"是否定义。在上述代码中,如果不做isset()判断,则会出现NOTICE,说为定义error。

二、$arr['image']中image未定义。

var_dump($arr['image']);

  直接这样写,会有NOTICE:images undefine提示,但是如果isset($arr['image'])先判断,然后使用,则没NOTICE了。

原文地址:https://www.cnblogs.com/thinksasa/p/2955688.html