求助:刚学SMARTY模板,按照网上讲得做,但使用assign方法时老是出现问题,弄了一下午,都快疯了!!!

chenggz2002 2006-07-14 07:43:10
我用的是Smarty 2.6.14
<?php
//...
$array1 = array(1 => "苹果", 2 => "菠萝", 3 => "香蕉", 4 => "芭乐");
$tpl->assign("array1",$array1);
//...
?>

Fatal error: Call to a member function assign() on a non-object in G:\web\smarty\test2.php on line 4


...全文
331 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gdj 2006-07-17
  • 打赏
  • 举报
回复
建议先学php再学smarty.
Harrie 2006-07-17
  • 打赏
  • 举报
回复
检查一下是否包含Smarty.class.php 这个文件
是否在使用$tpl之前对smarty进行了实例化
另外再检查一下templates_c的目录权限,如果都没问题就尝试重新下载一份smarty的文件试一下
caotian2000 2006-07-17
  • 打赏
  • 举报
回复
$tpl 这个变量的问题吧,你看看你设置的是$smarty还是这个!
kongguyoulan163 2006-07-17
  • 打赏
  • 举报
回复
很明显是你的$tpl类没有定义
SysTem128 2006-07-17
  • 打赏
  • 举报
回复
1 main.php:
2 <?php
3 include "class/Smarty.class.php";
4 define('__SITE_ROOT', 'd:/appserv/web/demo'); // 最後?#93;有斜線
5 $tpl = new Smarty();
6 $tpl->template_dir = __SITE_ROOT . "/templates/";
7 $tpl->compile_dir = __SITE_ROOT . "/templates_c/";
8 $tpl->config_dir = __SITE_ROOT . "/configs/";
9 $tpl->cache_dir = __SITE_ROOT . "/cache/";
10 $tpl->left_delimiter = '<{';
11 $tpl->right_delimiter = '}>';
12 ?>


1 <?php
2 require "main.php";
3 $tpl->assign("title", "測試用的網頁標題");
4 $tpl->assign("content", "測試用的網頁內容");
5 // 上面兩行也可以用這行代替
6 // $tpl->assign(array("title" => "測試用的網頁標題", "content" => "測試用的網頁內容"));
7 $tpl->display('test.htm');
8 ?>
教程里面的~我这两天也在看……
Lz犯的是一般的错误…………与Smarty无关……

我是极限里回答你问题的MoXie
yibotiemen 2006-07-16
  • 打赏
  • 举报
回复
$smarty这个变量有吗?
是不是一个Smarty的实例?

注意检查下大小写吧
joykai 2006-07-15
  • 打赏
  • 举报
回复
看你的错误,你在用assign函数之前有include("Smart.class.php")呢么?
simpleant 2006-07-15
  • 打赏
  • 举报
回复
不喜欢smarty,虽然他很best
chenggz2002 2006-07-14
  • 打赏
  • 举报
回复
我查了下手册
Example 13-3. assign
例子 13-3. 赋值

// passing name/value pairs 名称/数值 方式$smarty->assign("Name","Fred");$smarty->assign("Address",$address);
// passing an associative array 联合数组方式$smarty->assign(array("city" => "Lincoln","state" => "Nebraska"));

与我的例子都不一样,郁闷!!


chenggz2002 2006-07-14
  • 打赏
  • 举报
回复
在线等待中
chenggz2002 2006-07-14
  • 打赏
  • 举报
回复
或者改为这样

$tpl->assign("array1",array(1 => "苹果", 2 => "菠萝", 3 => "香蕉", 4 => "芭乐"));

也不行,出现同样的错误

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧