php主文件没有看到包含文件变量

时间:2017-10-12 14:38:51

标签: php

确定大多数关于S.O.的答案从我遇到的问题来看是后退的。从包含的文件中看不到我的变量。我从来没有遇到过这种情况,而且它搞砸了一切。我使用的很聪明,但由于它无法看到var,我回到旧时尚的php模板,仍然看不到var ..这里是有问题的脚本(游戏网站ofc)。

包含文件:prep_feature_game.php

foreach($games->gamexml->game as $game){

        $d = parseDate($game['releasedate']);
        $game['date_month'] = $d['month'];
        $game['date_day'] = $d['day'];
        $game['date_year'] = $d['year'];
        $game['image_60x40'] = showImage($game['foldername'],'60x40');
        $game['genrelist'] = displayGenreList($game['gameid']);

        //debugPrint($game);die();
        $game_list[] = $game;       

    }

CONTROL PAGE:

switch ($page) {

        default:
            include('includes/prep_feature_game.php');
            // NOTE $GAME_LIST HAS THE ARRAY ^
            display('feature_game');
            break;

和显示文件:FEATURE_GAME.PHP

    <h1><?=SITE_NAME;?>'s Featured Games!</h1>

    <table>
    <?PHP
    // TEST FOR $GAME_LIST
    foreach($game_list as $field=>$data){
      echo $data['gamename'];
    }
/*
this produces the error:
Notice: Undefined variable: game_list in C:\xampp\htdocs\ix2\themes\missingpiece\feature_game.php on line 7
*/

 }// end switch page

这些模板多年来我有很多变化,包括&#34;&#34;文件从未产生过这种错误。我知道包含的文件就好像所包含的脚本插入了include所在的位置。

为什么接收脚本无法看到从包含的脚本生成的变量。这些都包括在内,所以它不应该是一个问题

PS 我注意到当我从php v5升级时开始发生这种情况 - php v7,怀疑它与此有什么关系,我还没检查过,因为包含文件非常标准。

1 个答案:

答案 0 :(得分:0)

您的问题没有显示display函数的定义,但除非您将$game_list声明为该函数中的全局函数,否则它超出了范围。如果您包含该模板,那么它将起作用。

include('includes/prep_feature_game.php');
include('feature_game.php');

或者为display功能添加参数。

display('feature_game', $game_list);

或者,如果您使用smarty,则必须先分配变量。

$smarty->assign('game_list', $game_list);
$smarty->display('feature_game.tpl');