我正在调用一个特定的功能,getTaskList0
,getTaskList1
或getTaskList2
,每个功能都与下面相同,任务后的数字指的是{{1数字(在getTaskList
中):
TaskManagerDAO
任务:
function getTaskList0(){
$lst=array();
$con=$this->getDBConnection();
$result = $con->query("SELECT name, score FROM task0 ORDER BY score DESC");
$i = 0;
$counter=0;
while (($row =$result->fetch_row()) && ($counter<5)) {
$rec = new Task($row[0],$row[1]);
$lst[$i++]=$rec;
$counter++;
}
return $lst;
}
这里调用函数:
<?php
class Task{
public $name;
public $score;
function __construct($name,$score) {
$this->name = $name;
$this->score = $score;
}
}
我尝试通过将函数名末尾的变量作为字符串放入然后调用该函数来调用该函数。这可行,因为我没有得到任何错误,但列表没有显示在表中,这是该代码应该做的:
<?php
session_start();
if(!class_exists('Action')){
include_once 'Action.php';
}
if(!class_exists('TaskManagerDAO')){
include_once 'TaskManagerDAO.php';
}
class Action_DisplayList implements Action{
public function execute($request){
if(!isset($_SESSION['functCount']))
$_SESSION['functCount']=0;
$functCount=$_SESSION['functCount'];
$functionName="getTaskList{$functCount}";
echo $functionName;
$dao = new TaskManagerDAO();
$names = $dao->$functionName();
$_SESSION['names'] = $names;
$last = sizeof($names);
$start = 0;
$_SESSION['start'] = $start;
$_SESSION['last'] =$last;
header("Location: tasklist.php");
}
}
?>
修改 我重新启动了我的计算机和所有内容,并且对于页面的第一次运行负载,它完美地运行了。在那之后,它虽然停止了工作。
答案 0 :(得分:0)
在开始使用session_start();
之前使用$_SESSION
。所以在你的情况下,尝试像
<?php
session_start();
if(isset($_POST['Add']) && ($_POST['name']!=="") &&!empty($_POST['Add'])){
//.... remaining code here
注意:要使用基于cookie的会话,必须先调用session_start(),然后才能向浏览器输出任何内容。