数组检查未定义偏移量php
我会试着解释一下.
我有一个数组: $arrayTime = array(0=>"07",1=>"09",3=>"13",4=>"15",5=>"17",6=>"19"); 在这里你可以看到没有定义偏移量2 if($arrayTime[$i]==""){ $arrayTime[$i]=0; } 是的它有效,但50到50阵列看起来像这样: $arrayTime = array(0=>"07",6=>"19",2=>"0"); 但是在哪一行是if它抛出一个错误:
所以我需要相同的结果,但没有错误.
首先,它不会抛出错误.它会为您提供有关代码中可能存在的错误的警告.
if($arrayTime[$i]==""){} 这会尝试访问$arrayTime [$i]来检索要与空字符串进行比较的值. 尝试读取和使用不存在的数组索引来获取比较值是它抛出警告的原因,因为这通常是意外的.当密钥不存在时,使用null代替,代码继续执行. if(null == ""){} // never true. 因为您要与空字符串“”进行比较,所以您的答案将为空(): if(empty($arrayTime[$i])){} 这意味着您期望一个密钥不存在,同时您正在检查空值.请参阅type comparison table以查看什么是什么以及什么不被认为是“空的”. 相同的规则适用于isset()和is_null(),如果密钥不存在,它不会抛出通知.因此,选择最能满足您需求的功能. 请记住,通过使用这些函数中的任何一个,您将检查值,而不是数组中是否存在该键.您可以使用 if(array_key_exists($i,$arrayTime)){} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |