为了账号安全,请及时绑定邮箱和手机立即绑定

Fatal error: Call to a member function display() on null 怎么解决??代码都贴出来了

http://img1.sycdn.imooc.com//5aab40c6000105d112680213.jpg

index.php代码

<?php

//url形式 index.php?controller=控制器&method=方法名

require_once('function.php'); //带引号才行

$controllerAllow=array('test','index');

$methodAllow=array('test','index','show');

$controller=in_array($_GET['controller'],$controllerAllow)?daddslashes($_GET['controller']):'index';

$method=in_array($_GET['method'],$methodAllow)?daddslashes($_GET['method']):'index';

C($controller,$method);

?>

function.php代码

<?php

function C($name,$method){ //C控制器缩写大 ,方法里面可以传参数,所以方法可以在传参

require_once('/libs/Controller/'.$name.'Controller.class.php');  //引入控制器文件

eval('$obj=new '.$name.'Controller();$obj->'.$method.'();'); //eval()函数调用简单但是不安全

}

C('test','show');

function M($name){  //M模型缩写大 ,方法里面不可以传参数

require_once('/libs/Model/'.$name.'Model.class.php');

/* $testModel=new testModel();//控制器 -> 按指令选取一个合适的模型

$data=$testModel->get(); //模型   -> 按控制器指令取相应数据 */

eval('$obj=new '.$name.'Model();');

return $obj;

}


function V($name){

require_once('/libs/View/'.$name.'View.class.php');

eval('$obj=new '.$name.'View();');

}


function daddslashes($str){   //daddslashes()用来转义非法字符 函数返回在预定义字符之前添加反斜杠的字符串。

return(!get_magic_quotes_gpc())?addslashes($str):$str;

}


?>

testController.class.php代码

<?php

class testController{

function show(){//控制器的作用是调用模型,并调用视图。将模型产生的数据传递给视图,并让相关视图去显示

$testModel=M('test'); 

$data=$testModel->get();    

$testView=V('test');   

$testView->display($data);  

}

}

?>


正在回答

3 回答

谢谢 云彩无色3804005 贴出代码

0 回复 有任何疑惑可以回复我~

首先你要确定,没加index.php之前,访问你的代码function.php你的代码没有错误,如果有,说明是你的几个函数哪里写错了,如果没有,说明是index.php写错了。然后你在看你传入的controller和method,先打印出你传入的controller和method,再看看有没有问题。

0 回复 有任何疑惑可以回复我~
#1

云彩无色3804005 提问者

我找到问题了,是视图函数少了个返回值return $obj; 谢谢
2018-03-21 回复 有任何疑惑可以回复我~

这个事说你的对象没有display方法,我看你是view调用的display方法,看看testView.class.php中你对testView这个class定义display这个方法了吗

0 回复 有任何疑惑可以回复我~
#1

云彩无色3804005 提问者

<?php class testView{ function display($data){ echo $data; } } ?>
2018-03-20 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

Fatal error: Call to a member function display() on null 怎么解决??代码都贴出来了

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信