我开始学习 php 并使用迷宫生成器来测试我的知识。每个顶点都是二维数组 ($gridlist[$x][$y]) 中 Grid 类的成员
每个方向(NSEW)和“已访问”都有一个类变量。构造函数将所有变量设置为 0。我在类中包含了一个函数来设置顶点之间的连接器,因此调用 $gridlist[2][2]->set_connect("N") 会将 Nconnect 变量设置为 1。
要将两个点连接在一起,需要设置连接的每一侧,因此我编写了一个函数(不在类中)来执行此操作:
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 上不起作用?
非常感谢
H T
(xampp 1.7.3 上的 php 5.3.1,用 IE8 测试)