这是我脚本的一部分:
$one = 0;
$two = 0;
$three = 0;
$data = 'a-b-c';
$data = explode("-", $data);
$one = $data[0];
$two = $data[1];
$three = $data[2];
到目前为止没有问题,但 $ data 有时可能
$data = 'a-b-c';
有时候
$data = 'a-b';
如果是$data = 'a-b'
;我得到未定义偏移:3 错误。是否有某种方法可以避免这种错误?
答案 0 :(得分:16)
将作业包装到if
- 块:
if(isset($data[0])) {
$one = $data[0];
}
...
现在检查此数组项是否已设置,如果不是,则只是不指定它,并且不会显示任何错误。
答案 1 :(得分:5)
假设至少有一个将永远存在
$data = 'a-b';
list($one, $two, $three) = explode("-", $data . '-0-0');
答案 2 :(得分:0)
您需要使用isset。 Isset检查变量是否存在。
// You can get rid of this since we set the default later if isset fail
/*
$one = 0;
$two = 0;
$three = 0;
*/
$data = 'a-b-c';
$data = explode('-', $data);
$one = (isset($data[0]) === TRUE ? $data[0] : 0);
$two = (isset($data[1]) === TRUE ? $data[1] : 0);
$three = (isset($data[2]) === TRUE ? $data[2] : 0);
答案 3 :(得分:0)
使用isset
之类的isset($data[0] == true)
答案 4 :(得分:0)
我通常喜欢这样:
$a = array(1,2,3,4);
$current = 0;
$index = 0;
while(isset($a[$index])) {
$current = $a[$index];
//... do something ...
$index++;
}
这有效!