dzięki właśnie o coś takeigo mi chodziło ale mam dalej problem:
zgodnie z tym co wiem i co mi napisaliście poprawiłem skrypt kolegi i wyszło mi coś takeigo
<?
class Register {
private static $oInstance = null; public function __set($sName, $sValue) {
$this->aGet[$sName] = $sValue;
}
public function __get($sName) {
return $this->aGet[$sName];
}
public function singleton() {
if (self$oInstance == null) self$oInstance = new self();
return self$oInstance;
}
}
abstract class Db {
protected
$oEngine = array();
public function __construct() {
$this->oEngine = Registersingleton();
}
public function __set($name, $value) {
$this -> oEngine -> $name = $value;
}
public function __get($name) {
return $this -> oEngine -> $name;
}
}
class base extends Db {
public function add () {
$this->zmienna = array('zmysly' => array('mowa', 'wzrok'), 'cos' => 0
); $this->zmienna2 = 1;
}
}
class base2 extends Db {
public function add () {
$this->zmienna2 = 2;
$this->zmienna['cos'] = 2;
}
}
$oDb_1 = new base;
$oDb_1 -> add();
$oDb_2 = new base2;
$oDb_2 -> add();
?>
tylko jest jeden mankament to wyświetla mi :
Array
(
[zmysly] => Array
(
[0] => mowa
[1] => wzrok
)
[cos] => 0
)
1
Notice: Indirect modification of overloaded property base2::$zmienna has no effect in /nowy.php on line 48
Array
(
[zmysly] => Array
(
[0] => mowa
[1] => wzrok
)
[cos] => 0
)
2
czyli chodzi o to ze nie nadpisuje tablic...
zadanie rozwiązane ale tylko tymczasowo $this->zmienna = array_merge($this -> zmienna,Array('cos' => 2));
ale trzeba pomyśleć by z array_merge nie korzystać