如何轻松避免收到此错误/通知:
Notice: Undefined offset: 1 in /var/www/page.php on line 149
Run Code Online (Sandbox Code Playgroud)
...在这段代码中:
list($func, $field) = explode('|', $value);
Run Code Online (Sandbox Code Playgroud)
爆炸返回的值并不总是两个,但如果你想使用list(),那么你怎么能轻易避免通知呢?
Kin*_*nch 120
list($func, $field) = array_pad(explode('|', $value, 2), 2, null);
Run Code Online (Sandbox Code Playgroud)
两个变化:
explode()为2.看来,只需要这个就可以了null该值,直到该数组包含2个值.有关详细信息,请参见手册:array_pad()这意味着,如果没有|在$value,$field === null.当然,您可以使用您喜欢的每个值来定义默认值$field(而不是null).它也可以交换的行为$func和$field
list($func, $field) = array_pad(explode('|', $value, 2), -2, null);
Run Code Online (Sandbox Code Playgroud)
现在$func是null,当没有|在$value.
Jon*_*Jon 10
我不知道这样做的直接方法也保留了方便性
list($func, $field) = explode('|', $value);
Run Code Online (Sandbox Code Playgroud)
然而,因为它实在是一种遗憾没有能够做到这一点,你可能要考虑偷偷摸摸间接的方法:
list($func, $field) = explode('|', $value.'|');
Run Code Online (Sandbox Code Playgroud)
我已根据需要附加了$value多个|s,以确保explode在阵列中至少生成2个项目.对于n变量,添加n-1分隔符.
这样您就不会出现任何错误,保持方便的list分配,输入中不存在的任何值都将设置为空字符串.对于大多数情况,后者不应该给你任何问题,所以上述想法将起作用.