2011-08-14 85 views
0

我如何覆蓋其他類中的表,並在第一個和三個字段中顯示它?數組和覆蓋(沒有全局數組)

<?php 

class A { 
    public $tab = array(); 

    public function wyswietl() { 
    $this->tab['id'] = '1'; 
    foreach ($this->tab as $key => $value) { 
     print $key .' = '. $value; 
    } 
    } 
} 

class B { 
    public function dodajB() { 
    $this->tab['desc'] = 'descriptions'; 
    } 
} 

class C 
{ 
    public function dodajC() { 
    $this->tab['name'] = 'names'; 
    } 
} 

$ob = new A; 

$ob2 = new B; 
$ob2->dodajB(); 

$ob3 = new C; 
$ob3->dodajC(); 

$ob->wyswietl(); 

?> 
+0

請提高你的問題,使我們有你問一個清醒的認識。在那之前,我正在投票結束。 –

回答

0

的作業被定義爲A級的目的是讓你將需要使這一切三列C類並且C從B擴展到A,我還建議使用__construct函數爲您構建對象。你也引用了一個局部變量tab而不是class引用它來引用它。

見下面該代碼執行上述所有的:

<?php 

class A 
{ 
    public $tab = array(); 

    public function __construct() 
    { 
     $this->tab['id'] = '1'; 
    } 

    public function wyswietl() 
    { 
     foreach ($this->tab as $key => $value) 
     { 
      print $key .' = '. $value . "\n"; 
     } 
    } 
} 

class B extends A 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
     $this->tab['desc'] = 'descriptions'; 
    } 
} 

class C extends B 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
     $this->tab['name'] = 'names'; 
    } 
} 

$ob = new A; 

$ob2 = new B; 
$ob3 = new C; 

echo 'A: '; 
$ob->wyswietl(); 
echo "\n\n"; 

echo 'B: '; 
$ob2->wyswietl(); 
echo "\n\n"; 

echo 'C: '; 
$ob3->wyswietl(); 
echo "\n\n"; 

?> 
0

你的問題是混亂的,但我認爲你正在尋找:

class B extends A { 
    public function dodajB(){ 
     $this->tab['desc'] = 'descriptions'; 
    } 
} 

class C extends B { 
    ... 
+0

請另一個樣本 – xyz

+0

@xyz我更新了我的帖子以獲得清晰度 – Paulpro

+0

相同效果 – xyz