- class_exists: documentation ( source)
<?php
class foo {
function define_new_class($class, $code) {
if (!class_exists($class)) {
$definition = eval($code);
}
}
function bar() {
$new_class = "boo";
$this->define_new_class($new_class,
"class $new_class {protected function far(){echo 'Far method of class '.get_class(\$this);}}");
$obj = new $new_class();
echo "Current class: " . get_class($this) . "\n"; // foo
echo "\$obj class: " . get_class($obj) . "\n"; // boo
}
}
$foo = new foo();
$foo->bar();
$b = new boo();
$b->far();