Hi,
ich bin gerade dabei meine alte Datenbankklasse auf mysqli umzustellen. Aus Kompatibilitätsgründen müssen natürlich alle funktionen erhalten bleiben und auch im db-objekt ein paar Eigenschaften vorhanden sein.
Die Klasse selbst stellt kein Problem dar, allerdings schaffe ich es nicht weitere Eigenschaften meiner Klasse hinzuzufügen. Ich hab das ganze mal herunter gebrochen:
Ich hätte jetzt erwartet die Eigenschaft "foo" beim print_r des frisch instanzierten Objekts zu sehen. Ähnlich wie hier:
Warum kann ich bei mysqli keine Eigenschaften meinem Kindobjekt hinzufügen? Jemand eine Idee?
Danke
ich bin gerade dabei meine alte Datenbankklasse auf mysqli umzustellen. Aus Kompatibilitätsgründen müssen natürlich alle funktionen erhalten bleiben und auch im db-objekt ein paar Eigenschaften vorhanden sein.
Die Klasse selbst stellt kein Problem dar, allerdings schaffe ich es nicht weitere Eigenschaften meiner Klasse hinzuzufügen. Ich hab das ganze mal herunter gebrochen:
PHP-Code:
class db extends mysqli {
public $foo = 'bar';
public function __construct(){
parent::__construct(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if(mysqli_connect_error()) {
die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
}
}
}
$db = new db();
print_r($db);
/*
ergibt:
db Object
(
[affected_rows] => 0
[client_info] => 5.1.58
[client_version] => 50158
[connect_errno] => 0
[connect_error] =>
[errno] => 0
[error] =>
[field_count] => 0
[host_info] => Localhost via UNIX socket
[info] =>
[insert_id] => 0
[server_info] => 5.1.61-0ubuntu0.11.10.1
[server_version] => 50161
[sqlstate] => 00000
[protocol_version] => 10
[thread_id] => 6260
[warning_count] => 0
)*/
PHP-Code:
class foo1 {
public $blub = false;
}
class foo2 extends foo1 {
public $blah = false;
}
$tmp = new foo2();
print_r($tmp);
/*
ergibt:
foo2 Object
(
[blah] =>
[blub] =>
)*/
Warum kann ich bei mysqli keine Eigenschaften meinem Kindobjekt hinzufügen? Jemand eine Idee?
Danke

Kommentar