Mailinglisten-Archive |
Ok wegen allgemeiner Nebelschwaden Poste ich mal den Kompletten Code.
Wichtig ist halt das ich in der Klasse von der ich ein Objekt haben
möchte nichts geändert werden soll.
<?php
/* Beispiel Singleton Klasse */
function &singleton($class, $param = array()) {
static $singleton;
if (!is_object($singleton)) {
$singleton = new singleton();
}
return $singleton->instance($class, $param);
}
class singleton {
var $instances = array();
function singleton() { }
function instance($class, $param) {
if ( !@is_object($this->instances[$class]) ) {
$str = ""; $count = count($param);
for ($i = 0; $i < $count; $i++) if ($i == $count-1) {$str .= "\$param[".$i."]";}else{$str .= "\$param[".$i."], ";};
eval( "\$this->instances[\$class] = new \$class($str);");
}
return $this->instances[$class];
}
}
/* Beispiel für Objekt */
class db {
var $db_host;
var $db_name;
var $db_user;
var $db_pass;
function db($user, $pass, $host, $db) {
//hier weitere verarbeitung
}
}
/* Anwendungsbeispiele */
$db = singleton('db',array('root', '', 'localhost', 'test'));
?>
php::bar PHP Wiki - Listenarchive