Php 数组和覆盖(无全局数组)

Php 数组和覆盖(无全局数组),php,Php,如何在其他类中重写该表,并在第一个和三个字段中显示它 <?php class A { public $tab = array(); public function wyswietl() { $this->tab['id'] = '1'; foreach ($this->tab as $key => $value) { print $key .' = '. $value; } } } class B { pu

如何在其他类中重写该表,并在第一个和三个字段中显示它

<?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();

?>

您的问题令人困惑,但我认为您正在寻找:

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

class C extends B {
    ...

ob被定义为类A的对象。要获得所有三列,您需要将其设置为类C,并使C从B扩展,B从A扩展。我还建议使用_构造函数为您构造对象。另外,您引用的是tab的局部变量,而不是使用该类来引用它的类

请参阅下面的代码,该代码执行上述所有操作:

<?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";

?>

请改进您的问题,以便我们清楚地了解您的问题。在那之前,我投票决定结束。