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)
ALWAYS も true と評価されます。これは関連している可能性がありますか?