저는 PHP를 배우기 시작하고 있으며, 지식을 테스트하기 위해 미로 생성기를 사용하고 있습니다. 각 정점은 2D 배열에서 Grid 클래스의 멤버입니다. ($ gridlist [$ x] [$ y])(php) 클래스 함수를 호출하는 함수에 클래스 멤버를 전달합니다.
각 방향 (NSEW)과 'visited'에 대한 클래스 변수가 있습니다. 생성자는 모든 변수를 0으로 설정합니다. $ gridlist [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");
: 치명적인 오류 :이 호출이 포함 이는 MEM에 전화 ber 함수 set_connect() non-object on C : \ XAMPP \ xampplite \ htdocs \ phptest \ zMaze3.php on line 170
누구나 내게 클래스 함수 호출이 $ c에서 작동하지 않는다고 말할 수 있습니까?
많은 감사
HT
(IE8로 테스트 XAMPP 1.7.3에 PHP 5.3.1)
당신의 메서드에 매개 변수로 전달과 같은 두 가지 방법이 하나 해결할 수 있습니다 당신이 방금 시작한 것처럼 변수에 의미있는 이름을 부여하는 습관을 가지십시오. 그렇게하면 우리 (그리고 우리)의 삶이 훨씬 쉬워 질 것입니다. – vascowhite