如何修复未定义的偏移量

时间:2014-02-02 21:04:36

标签: php

我在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   }  

造成这种情况的原因是什么?如何防止这种情况发生?

1 个答案:

答案 0 :(得分:3)

当你爆炸$filename时,字符串可能不包含/字符,这意味着整个$filename将保留在数组的第一个元素中(默认情况下)。 / p>

您应该检查数组的长度count或检查元素是否存在isset

这是导致未知偏移误差的原因。

在这里爆炸的阅读:http://uk1.php.net/explode

检查您是否可以访问第二个索引:

if (isset($splitted_filename[1])) {
    // Code
}