PHP Conference Japan 2024

get_declared_classes

(PHP 4, PHP 5, PHP 7, PHP 8)

get_declared_classes返回一个包含已定义类的名称的数组

描述

get_declared_classes(): 数组

获取已声明的类。

参数

此函数没有参数。

返回值

返回当前脚本中已声明类的名称数组。

注意:

请注意,根据您已编译或加载到 PHP 中的扩展,可能存在其他类。这意味着您将无法使用这些名称定义自己的类。附录的 预定义类 部分列出了预定义类。

变更日志

版本 描述
7.4.0 以前 get_declared_classes() 总是先返回父类,然后返回子类。现在不再是这样了。 get_declared_classes() 的返回值不保证任何特定的顺序。

示例

示例 #1 get_declared_classes() 示例

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

以上示例将输出类似以下内容

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

参见

添加注释

用户贡献的注释 2 条注释

1
rmamdaminov at gmail dot com
1 年前
请注意,此函数还会计算枚举。

<?php

enum Bla
{
case
Foo;
}

var_dump(get_declared_classes());
?>

结果
array(116) {
...
[115]=> string(3) "Bla"
}
1
matt-php at DONT-SPAM-ME dot bitdifferent dot com
20 年前
此函数返回的数组将按照类定义/包含/要求的顺序排列,并且此顺序似乎不会改变。

例如

<?PHP

// 定义 classone
class classone { }

// 定义 classtwo
class classtwo { }

// 这将显示 X 个类(内置类、扩展等),其中 classone 和 classtwo 为最后两个元素

print_r(get_declared_classes());

// 定义 classthree
class classthree { }

//...和 four
class classfour { }

// 显示与之前相同的结果,class three 和 four 附加在后面
print_r(get_declared_classes());

?>

输出

数组
(
[0] => stdClass
[1] .... 其他已定义的类....
[10] => classone
[11] => classtwo
)

以及...

数组
(
[0] => stdClass
[1] .... 其他已定义的类....
[10] => classone
[11] => classtwo
[12] => classthree
[13] => classfour
)
To Top