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
答案 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.');
}