使用 PHP 5.3.10,我创建了一个链接列表类,并试图保存一个足球运动员列表。
调用该add
函数后,该对象似乎从未保留任何信息。var_dump($playerList)
为我的头指针和尾指针返回 NULL。或者,如果我将其替换为,则无论我将count 语句var_dump($playerList->count)
放在何处,它都不会打印任何内容。var_dump
我已经阅读了手册,但在我的语法中找不到错误。我的直觉告诉我mysql_fetch_array
正在做一些时髦的事情。如下所述,我的测试表明,当我调用playerList->add()
. 无论如何,这是我的简单代码:
/* Populates lists with available players. */
function populateList($sql)
{
$playerList = new PlayerList();
while ($row = mysql_fetch_array($sql, MYSQL_NUM))
{
$playerList->add(new Player($row[0], $row[1], $row[2], $row[3], $row[4]));
}
var_dump($playerList);
}
还有我的链表类:
include 'PlayerNode.php';
class PlayerList
{
public $head;
public $tail;
public $count;
function PlayerList()
{
$head = null;
$tail = null;
$count = 0;
}
function add($player)
{
$count ++;
$node = new PlayerNode($player);
//First time in
if ($head == null)
{
$head = $node;
$tail = $node;
$head->nextPtr = null;
}
// All other times
else
{
$tail->nextPtr = $node;
$tail = $node;
$node->nextPtr = null;
}
$count++;
}
}
我可以var_dump($node)
在链表类中放置和回显语句并观察它PlayerNode
是否正常工作。
但是,另一个奇怪的观察......if($head==null)
总是评估为真。这可能有关系吗?