查看文件应用程序/视图//未找到view..php

时间:2015-04-21 14:51:22

标签: php xml pdo

public static function view($name, array $vars = null){
    if(preg_match('/\\\\/', $name)){
        $view_data = explode('\\', $name);
        if(count($view_data) == 3)
            $file = APP_PATH.DS.'views'.DS.$view_data[0].DS.$view_data[1].DS.'view.'.$view_data[2].'.php';
        else
            $file = APP_PATH.DS.'views'.DS.$view_data[0].DS.'view.'.$view_data[1].'.php';
    }
    else{
        $file = APP_PATH.DS.'views'.DS.'view.'.$name.'.php';
    }
    if(!is_readable($file)){
        throw new Exception('view file application'.DS.'views'.DS.$view_data[0].DS.'view.'.$view_data[1].'.php not found.');
    }
    else{
        if(isset($vars)){
            extract($vars);
        }
        require($file);
    }
}
  

[21-Apr-2015 13:10:30 UTC] PHP注意:未定义的变量:第28行/home/realitycards/public_html/test/system/load.class.php中的view_data

1 个答案:

答案 0 :(得分:1)

您的变量$view_data仅在第一个if语句中定义。在下面的if声明中,您使用$view_data即使它尚未设置也是如此。

if(!is_readable($file)){
    throw new Exception('view file application'.DS.'views'.DS.$view_data[0].DS.'view.'.$view_data[1].'.php not found.');
}

您需要在$view_data语句中设置else,或者在上述例外情况下,使用您已设置的$file变量:

if(!is_readable($file)){
    throw new Exception('view file '. $file .' not found.');
}