如何轻松避免收到此错误/通知:
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
分配,输入中不存在的任何值都将设置为空字符串.对于大多数情况,后者不应该给你任何问题,所以上述想法将起作用.