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了。