search for in the  
<get_classget_declared_interfaces>
Last updated: Thu, 19 May 2005

get_declared_classes

(PHP 4, PHP 5)

get_declared_classes -- Returns an array with the name of the defined classes

Description

array get_declared_classes ( void )

This function returns an array of the names of the declared classes in the current script.

Note: In PHP 4.0.1pl2, three extra classes are returned at the beginning of the array: stdClass (defined in Zend/zend.c), OverloadedTestClass (defined in ext/standard/basic_functions.c) and Directory (defined in ext/standard/dir.c).

Also note that depending on what libraries you have compiled into PHP, additional classes could be present. This means that you will not be able to define your own classes using these names. There is a list of predefined classes in the Predefined Classes section of the appendices.

Example 1. get_declared_classes() example

<?php
print_r
(get_declared_classes());
?>

The above example will output something similar to:

Array
(
    [0] => stdClass
    [1] => __PHP_Incomplete_Class
    [2] => Directory
)

See also class_exists(), and get_declared_interfaces().



User Contributed Notes
get_declared_classes
22-Mar-2005 11: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 09: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 01: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
20-Mar-2003 05: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 03: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 02:25
To easily check the values, just run:

print_r (get_declared_classes());

<get_classget_declared_interfaces>
 Last updated: Thu, 19 May 2005
Copyright © 2001-2005 The PHP Group
All rights reserved.
This unofficial mirror is operated at: The Server Pages
Last updated: Thu May 19 17:35:34 2005 CDT