MYSQL 및 PHP로 OODB를 만드는 클래스 프로젝트가 있습니다.PHP - 개체에서 개체 호출
현재 개체 상자로 채워진 표가 있습니다. 또한 생성 될 때 테이블에서 데이터를 가져온 다음 비슷한 방식으로 자식을 재귀 적으로 생성하는 box 클래스가 있습니다. 그것은 잘 작동하는 것 같습니다. 하지만 자식 상자에서 함수를 호출 할 수 없습니다. 것
$box1 = new Box1(1);
$box1->display();
어떤 도움이나 통찰력 : 여기
class Box1 {
var $id;
var $pid;
var $children;
var $type;
var $content;
var $siblingorder;
function Box1($bId){
$q ="SELECT * FROM `box` WHERE id =". $bId;
$r = mysql_query($q);
if ($r){
$row = mysql_fetch_array($r);
$this->id=$bId;
$this->pid=$row[1];
$this->children=$row[2];
$this->type=$row[3];
$this->siblingorder=$row[5];
$this->content=$row[6];
//echo $this->id."<br />";
if(isset($this->children)){
//echo $this->children."<br />";
$kids = explode(',', $this->children);
foreach ($kids as $key => $value) {
$varname = "box".$value;
//global $$varname;
//echo $varname."<br>";
$$varname = new Box1($value);
}
}
}
}//constructor
function display(){
echo "<div style='border: solid 2px;'>";
echo $this->id;
echo "<br />";
if(isset($this->children)){
$kids = explode(',', $this->children);
foreach ($kids as $key => $value) {
$varname = "box".$value;
//echo $varname."<br />";
$$varname->display();
}
}
echo "</div>";
}//End DISPLAY
function update(){
}//End UPDATE
}
생성자와 차례로 어린이 상자 표시 기능을 호출해야 표시 함수를 호출하는 코드입니다 : 여기
는 클래스입니다 많이 감사하겠습니다.
가변 범위와 관련된 문제입니다. 'display()'는 그 함수의 범위에 있지 않기 때문에'$ box1'에 접근 할 수 없습니다. 아마 개체의 특성으로 자식 개체 배열을 만들 것입니다. – andrewsi