私はphpを学び始めており、迷路ジェネレーターを使用して知識をテストしています。各頂点は、2D 配列のクラス Grid のメンバーです ($gridlist[$x][$y])
各方向 (NSEW) と「訪問済み」のクラス変数があります。コンストラクターはすべての変数を 0 に設定します。頂点間のコネクタを設定する関数をクラスに含めたので、$gridlist[2][2]->set_connect("N") を呼び出すと Nconnect 変数が 1 に設定されます。
2 つのポイントを接続するには、接続の各側を設定する必要があるため、これを行う関数を (クラスではなく) 作成しました。
function connect_twoV2($a, $b, $d){
$c = $gridlist[$a][$b];
switch ($d){
case "N":
$c->set_connect("N");
$e = $gridlist[$a][$b-1];
$e->set_connect("S");
break;
case "S":
$c->set_connect("S");
$e = $gridlist[$a][$b+1];
$e->set_connect("N");
break;
case "E":
$c->set_connect("E"); ///This is line 170
$e = $gridlist[$a+1][$b];
$e->set_connect("W");
break;
case "W":
$c->set_connect("W");
$e = $gridlist[$a-1][$b];
$e->set_connect("E");
break;
}
}
ただし、この呼び出しを含むファイルを実行すると、次のようになります。
connect_twoV2(1, 2, "E");
私は得る:致命的なエラー:170行目のC:\ XAMPP\xampplite\htdocs\phptest\zMaze3.phpの非オブジェクトでメンバー関数set_connect()を呼び出す
クラス関数呼び出しが $c で機能しない理由を誰か教えてもらえますか?
どうもありがとう
ht
(xampp 1.7.3 での php 5.3.1、IE8 でのテスト)