今天学习使用了include_php来在模版页中调用PHP文件,但是有一个 问题 。
当使用 {include_php file='***.php'}的 时候使用 正常 。
但是 我 把需要载入的 PHP文件放在 一个 变量中以后,却不会随着 变量的改变而更换加载的 PHP文件。大体上是 这样写的 。在php页中
<?php
.....
$act = $_GET['act'];
$phpfile = '';
switch($act)
  {
    case a:
       $phpfile = 'a.php';
       break;
    case b:
       $phpfile = 'b.php';
       break;
    defult:
       $phpfile = 'c.php';
  }
$smarty->assign('phpfile','$phpfile');
$smarty->display('abc.tpl');
?>
然后模版大概是 这样 :
......
{if $phpfile != ''}
{include_php file=$phpfile}
{/if}
.....
奇怪的是为什么这样做以后include_php始终加载的 是 默认 页,我尝试在if中输出$phpfile的值,结果发现在模版页中这个$phpfile变量的值确实是正常 的 。
希望有人能给我解答啊,我现在宿舍里都不能 上网了!,我在线等

解决方案 »

  1.   

    echo $act; //看看$act的值是什么
    switch($act){
      case 'a':
        $phpfile = 'a.php';
        break;
      case 'b':
        $phpfile = 'b.php';
        break;
      defult:
        $phpfile = 'c.php';
    }
      

  2.   

    看过 正常 的 
    我 后来把这个模版页的 代码改成下面这样 ,结果 显示正常 。
    {if $phpfile == 'a'}
    {include_php file='a.php'}
    {elseif $phpfile == 'b'}
    {include_php file = 'b.php'}
    {elseif $phpfile=='c.php'}
    {include_php file = 'c.php'}
    {/if}
      

  3.   

    因为变量phpfile没有assign过去
    $smarty->assign('phpfile', $phpfile);
      

  4.   

    $smarty->assign('phpfile','$phpfile');
    在他之前輸出$phpfile看看是否有值...
      

  5.   

      case 'a':
      $phpfile = 'a.php';
      break;
      case 'b':
      $phpfile = 'b.php';
    $smarty->assign('phpfile','$phpfile');
    //这里应该上双引号或不要引号!!