classes can't be unloaded. probably not very practical to implement that in a future version. I wouldn't go out of my way to do it if I were zend. you're better off finding a workaround. it's better programming technique to find a way around having to do that anyway.
http://www.zend.com/zend/week/week223.php#Heading10
get_declared_classes
(PHP 4, PHP 5)
get_declared_classes — Ermittelt die Namen der definierten Klassen
Beschreibung
array get_declared_classes
( void
)
Ermittelt die Namen der definierten Klassen
Rückgabewerte
Liefert ein Array mit den Namen der zur Zeit definierten Klassen.
Hinweis:
Bitte beachten Sie, dass je nachdem, welche Extensions in Ihrer PHP-Installation einkompiliert oder geladen sind, weitere Klassen vordefiniert sein können. Dies bedeutet, dass Sie keine eigenen Klassen mit dem gleichen Namen anlegen können. Eine Liste der möglicherweise vordefinierten Klassen finden Sie im Anhang Predefined Classes
Beispiele
Beispiel #1 get_declared_classes()-Beispiel
<?php
print_r(get_declared_classes());
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
Array
(
[0] => stdClass
[1] => __PHP_Incomplete_Class
[2] => Directory
)
Siehe auch
- class_exists() - Checks if the class has been defined
- get_declared_interfaces() - Gibt ein Array mit allen definierten Interfaces zurück
- get_declared_functions()
get_declared_classes
matt at mattsoft dot net
21-Dec-2005 11:58
21-Dec-2005 11:58
22-Mar-2005 06:16
Regarding note of 3-21:
<?php
class myclass {}
$class = 'myclass';
$instance = new $class();
?>
This function could also be used to determine the names of classes defined in a particular file by calling it before and after include. It's hardly a pointless function.
matt-php at DONT-SPAM-ME dot bitdifferent dot com
01-Nov-2004 04:41
01-Nov-2004 04:41
The array returned by this function will be in the order the classes were defined / included / required and this order does not appear to change.
For example:
<?PHP
//define classone
class classone { }
//define classtwo
class classtwo { }
//This will show X classes (built-ins, extensions etc) with
//classone and classtwo as the last two elements
print_r(get_declared_classes());
//define classthree
class classthree { }
//...and four
class classfour { }
//Shows the same result as before with class three and four appended
print_r(get_declared_classes());
?>
Output:
Array
(
[0] => stdClass
[1] .... other defined classes....
[10] => classone
[11] => classtwo
)
and...
Array
(
[0] => stdClass
[1] .... other defined classes....
[10] => classone
[11] => classtwo
[12] => classthree
[13] => classfour
)
Jazeps Basko
07-Feb-2004 08:52
07-Feb-2004 08:52
In PHP5, you don't get declared interfaces by calling this function!!!
To get interfaces you should use get_declared_interfaces(). However, to check if an interface is already defined, you should use class_exists()! This is strange, but PHP team does not think so.
smokey
21-Mar-2003 12:06
21-Mar-2003 12:06
you cannot remove them. they are "defined", which happens when the class is being loaded from the parser. you just deleted an instance of a class.
Leigh Purdie
23-Jan-2003 10:01
23-Jan-2003 10:01
Note that classes remain in the declared list, even when their associated object is undef'd.
eg:
$object = new MyClass;
print_r(get_declared_classes());
undef($object);
print_r(get_declared_classes());
- the two print_r's will return the same data.
Not sure how to remove a class from the declared list.
ben [at] efros d0t COM
06-Jul-2001 09:25
06-Jul-2001 09:25
To easily check the values, just run:
print_r (get_declared_classes());