2024 年日本 PHP 研討會

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 { }

//...以及 classfour
class classfour { }

//顯示與之前相同的結果,並附加 classthree 和 classfour
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