首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包括函数文件末尾的模板PHP文件

包括函数文件末尾的模板PHP文件
EN

Stack Overflow用户
提问于 2017-06-08 01:20:30
回答 2查看 63关注 0票数 3

我正在用一本书学习基本PHP。在这本书中,我做了这个例子:

代码语言:javascript
复制
<?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";

书中使用了"functions.php“文件末尾的"include functions.php”,它似乎有效。但是,在我的示例中使用时,用于显示结果的template.php没有工作,下面是使用template.php代码的template.php部分:

代码语言:javascript
复制
<table>
            <tr>
                <th>Tasks</th>
            </tr>
            <?php foreach($taskList as $task) : ?>
            <tr>
                <td><?=$task?></td>
            </tr>
            <?php endforeach; ?>
        </table>

以下是显示的错误:

代码语言:javascript
复制
Notice: Undefined variable: taskList in C:\xampp\htdocs\to-do-list\template.php on line 27

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\to-do-list\template.php on line 27

据我理解,template.php并没有从functions.php那里获得信息,而是从它得到的书中获得信息。

PHP文档

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

代码语言:javascript
复制
<?php
$a = 1;
include 'b.inc';
?>

因此,b.inc将有$a变量。书中发生的一切都是一样的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-08 01:39:42

当我尝试下面的代码时,它在我的计算机上工作得很好(它会产生一些输出)。

文件: first.php

代码语言:javascript
复制
<?php
$taskList = [];
$taskList[]=5;
$taskList[]=6;
include 'second.php';
?>

文件: second.php

代码语言:javascript
复制
<table>
  <tr>
    <th>Tasks</th>
  </tr>
  <?php foreach($taskList as $task) : ?>
    <tr>
      <td><?=$task?></td>
    </tr>
  <?php endforeach; ?>
</table>
票数 1
EN

Stack Overflow用户

发布于 2017-06-08 02:28:27

您的示例运行得很好,但是,由于我无法考虑从哪里开始问题,我建议

  • 编辑session_start()行,在行尾添加分号。
  • 确保打开functions.php文件的url,而不是template.php文件。
  • 如果在没有GET参数的情况下请求文件functions.php时应用此错误,则尝试提供一个参数。就像http://localhost/test/functions.php?taskName=anyName

下面是我尝试并调用带有和不带参数的functions.php的确切代码,并且运行良好

functions.php

代码语言:javascript
复制
<?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

代码语言:javascript
复制
<table>
    <tr>
        <th>Tasks</th>
    </tr>
        <?php foreach($taskList as $task) : ?>
            <tr>
                <td><?=$task?></td>
            </tr>
        <?php endforeach; ?>
</table>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44425189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档