问答详情
源自:6-10 Smarty实例

view为空,输出不了,为什么?

index.php


require_once('function.php');

require_once('config.php');

//对smarty初始化

$view=ORG('Smarty/','Smarty',$viewconfig);

//设置允许的控制器名和方法名数组

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

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

//in_array函数作用:判断一下这个字符串是否存在于字符串里

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

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

C($controller,$method);


testController

class testController{

function show(){

global $view;

$testModel = M('test');

$data=$testModel->get();

var_dump($view);

$view->assign('str','哈哈哈');

$view->display('test.tpl');

}

}



提示出错:Call to a member function assign() on a non-object

提问者:慕粉1472486838 2016-12-08 21:46

个回答

  • Zark0
    2016-12-09 14:45:27
    已采纳

    说的是你调用成员方法assign()的这个$view不是一个对象!

  • kihoor
    2017-08-09 12:47:38

    $view是从function.php实例化smarty类返回的对象,

  • 无故故
    2017-04-01 13:56:17

    好吧,困扰了这么久突然解决了,是function.php,前面好像是照着老师的视频抄代码,在function里多调用了一次大C函数,所以导致了两个输出结果,还有是在Smarty实例函数之前调用,所以后面的global没有生效。

  • 无故故
    2017-04-01 13:43:06

    问题解决了吗?我也遇到了这个问题,在控制器里global的$view变量是null的,但是在入口文件index.php里实例化的smarty对象是有效的。

  • Zark0
    2016-12-09 14:46:17

    说明你实例化Smarty的时候有问题