在函数文件末尾包含模板PHP文件

在函数文件末尾包含模板PHP文件,php,Php,我正在通过一本书学习基本的PHP。在书中,我做了以下示例: <?php session_start() if(array_key_exists("taskName", $_GET)) { $_SESSION["taskList"][] = $_GET["taskName"]; } $taskList= []; if(array_key_exists("taskList", $_SESSION)) { $taskList = $_SESSION["taskList"];

我正在通过一本书学习基本的PHP。在书中,我做了以下示例:

<?php
session_start()

if(array_key_exists("taskName", $_GET)) {
    $_SESSION["taskList"][] = $_GET["taskName"];
}

$taskList= [];

if(array_key_exists("taskList", $_SESSION)) {
    $taskList = $_SESSION["taskList"];
}

include "template.php";
据我所知,template.php并不像书中那样从functions.php获取信息

在上述文档中,有以下示例:

<?php
$a = 1;
include 'b.inc';
?>


因此,b.inc将拥有$a var。这与书中的情况相同。

当我尝试下面的代码时,它在我的计算机上运行良好(它会产生一些输出)

文件:first.php

<?php
$taskList = [];
$taskList[]=5;
$taskList[]=6;
include 'second.php';
?>

文件:second.php

<table>
  <tr>
    <th>Tasks</th>
  </tr>
  <?php foreach($taskList as $task) : ?>
    <tr>
      <td><?=$task?></td>
    </tr>
  <?php endforeach; ?>
</table>

任务

您的示例运行得很好,但是由于我无法思考问题到底从何处开始,因此我建议

  • 编辑
    session\u start()
    行,在行尾添加分号
  • 确保打开functions.php文件的url,而不是template.php文件
  • 如果在请求文件functions.php而不使用GET参数时出现此错误,请尝试提供参数。喜欢
下面是我尝试并调用functions.php(带参数和不带参数)的确切代码,运行良好

functions.php

<?php

session_start();

if(array_key_exists("taskName", $_GET)) {
    $_SESSION["taskList"][] = $_GET["taskName"];
}

$taskList= [];

if(array_key_exists("taskList", $_SESSION)) {
    $taskList = $_SESSION["taskList"];
}

include "template.php";
<table>
    <tr>
        <th>Tasks</th>
    </tr>
        <?php foreach($taskList as $task) : ?>
            <tr>
                <td><?=$task?></td>
            </tr>
        <?php endforeach; ?>
</table>


您想问的问题是。。。什么?您的代码中包含functions.php或template.php了吗?另外,不要认为
是一个有效的语句,也不要将长的php标记与短的php标记(即
)混合使用。您是否访问浏览器中的主文件或template.php?看起来是后者。包含的文件不可能丢失父文件中定义的变量。@MaxZoom实际上我正在试图理解为什么不起作用,因为这本书(我认为是正确的)是有效的。@ryo7689
非常有效,您是否在PHP配置中启用了
short\u tags
。嗨,编辑了这个问题以最好地描述我的问题。我认为短标签没有问题。请让我知道这是否适用于您:
php first.php
Hi@MaxZoom是的,它帮助我了解我做错了什么。在书中,他们访问“第二个”和“第一个”,这是我的模板,仅用于显示结果。谢谢,很高兴我能提供帮助。
<?php

session_start();

if(array_key_exists("taskName", $_GET)) {
    $_SESSION["taskList"][] = $_GET["taskName"];
}

$taskList= [];

if(array_key_exists("taskList", $_SESSION)) {
    $taskList = $_SESSION["taskList"];
}

include "template.php";
<table>
    <tr>
        <th>Tasks</th>
    </tr>
        <?php foreach($taskList as $task) : ?>
            <tr>
                <td><?=$task?></td>
            </tr>
        <?php endforeach; ?>
</table>