我正在学习基础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";
&#34;包括template.php&#34;在&#34; functions.php&#34;结束时文件在书中使用,它似乎工作。但是,在我的例子中使用时,用于显示结果的template.php不起作用,这里是使用PHP代码的template.php部分:
<table>
<tr>
<th>Tasks</th>
</tr>
<?php foreach($taskList as $task) : ?>
<tr>
<td><?=$task?></td>
</tr>
<?php endforeach; ?>
</table>
以下是错误显示:
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
$a = 1;
include 'b.inc';
?>
所以,b.inc将有$ a var。这与书中的内容相同。
答案 0 :(得分:1)
当我尝试下面的代码时,它在我的计算机上工作正常(它会产生一些输出)。
文件: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>
答案 1 :(得分:1)
你的例子工作得很好,但是因为我无法想到从问题的确切位置开始,我建议
session_start()
行,在该行的末尾添加分号。这是我尝试的确切代码,并且使用和不使用参数调用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";
<强>的template.php 强>
<table>
<tr>
<th>Tasks</th>
</tr>
<?php foreach($taskList as $task) : ?>
<tr>
<td><?=$task?></td>
</tr>
<?php endforeach; ?>
</table>