我有一個類項目,用MYSQL和PHP創建一個OODB。PHP - 在一個對象中調用對象
目前我有填充對象框的表。我還有一個盒子類,它在構造時將從表中獲取數據,然後以相似的方式遞歸構造其子元素。這似乎運作良好。但我無法從子框中調用函數。
這裏是類:
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
}
這裏是調用構造函數和這反過來應該叫孩子框顯示功能顯示功能的代碼:
$box1 = new Box1(1);
$box1->display();
任何幫助或洞察力會非常感謝。
這是一個變量範圍的問題。 'display()'不能訪問'$ box1',因爲它不在該函數的範圍內。我可能會創建一個兒童對象數組作爲對象的一個屬性。 – andrewsi 2013-05-07 17:21:24