如何避免未定义的偏移
2022-08-30 09:10:03
您如何轻松避免收到此错误/通知:
Notice: Undefined offset: 1 in /var/www/page.php on line 149
...在此代码中:
list($func, $field) = explode('|', $value);
分解并不总是返回两个值,但是如果你想使用list()如何轻松避免通知呢?
您如何轻松避免收到此错误/通知:
Notice: Undefined offset: 1 in /var/www/page.php on line 149
...在此代码中:
list($func, $field) = explode('|', $value);
分解并不总是返回两个值,但是如果你想使用list()如何轻松避免通知呢?
list($func, $field) = array_pad(explode('|', $value, 2), 2, null);
两个变化:
explode()
null
这意味着,如果 中没有 ,则 。当然,您可以使用要定义的每个值作为默认值(而不是 )。它也可以交换 和 的行为|
$value
$field === null
$field
null
$func
$field
list($func, $field) = array_pad(explode('|', $value, 2), -2, null);
现在是 ,当 中没有 时。$func
null
|
$value
我不知道有哪种方法可以做到这一点,同时又能保持便利性
list($func, $field) = explode('|', $value);
但是,由于无法做到这一点真的很可惜,您可能需要考虑一种偷偷摸摸的间接方法:
list($func, $field) = explode('|', $value.'|');
我已经根据需要追加到尽可能多的s,以确保它将在数组中产生至少2个项目。对于变量,请添加分隔符字符。$value
|
explode
n
n-1
这样,您就不会收到任何错误,您可以保留方便的赋值,并且输入中不存在的任何值都将设置为空字符串。在大多数情况下,后者不应该给你带来任何问题,所以上述想法会起作用。list