我在undefined offset:1
(在此示例中)中显示了line 5
的php通知。
1 private function checkForActiveControllerAndAction($filename, $navigation_controller_and_action) {
2
3 $splitted_filename = explode("/", $filename);
4 $active_controller = $splitted_filename[0];
5 $active_action = $splitted_filename[1];
6 $splitted_filename = explode("/", $navigation_controller_and_action);
7 $navigation_controller = $splitted_filename[0];
8 $navigation_action = $splitted_filename[1];
9 if ($active_controller == $navigation_controller AND $active_action == $navigation_action) {
10 return true;
11 } else {
12 return false;
13 }
14 }
造成这种情况的原因是什么?如何防止这种情况发生?
答案 0 :(得分:3)
当你爆炸$filename
时,字符串可能不包含/
字符,这意味着整个$filename
将保留在数组的第一个元素中(默认情况下)。 / p>
您应该检查数组的长度count
或检查元素是否存在isset
。
这是导致未知偏移误差的原因。
在这里爆炸的阅读:http://uk1.php.net/explode
检查您是否可以访问第二个索引:
if (isset($splitted_filename[1])) {
// Code
}