LonghornPHP 2026

get_defined_functions

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

get_defined_functionsВозвращает массив определённых функций

Описание

function get_defined_functions(bool $exclude_disabled = true ): array

Функция получает массив функций, которые определили.

Список параметров

exclude_disabled

Требуется ли исключать из результата отключённые функции. Начиная с PHP 8.0.0 параметр не влияет на результат.

Внимание

Начиная с PHP 8.5.0 функциональность УСТАРЕЛА. Полагаться на функциональность настоятельно не рекомендуют.

Возвращаемые значения

Функция возвращает многомерный массив, который содержит список определённых функций, как встроенных (внутренних), так и пользовательских. Внутренние функции перечисляются в элементе массива $arr["internal"], а пользовательские — в элементе $arr["user"] (смотрите пример ниже).

Список изменений

Версия Описание
8.5.0 Параметр exclude_disabled устарел, поскольку больше не влияет на результат.
8.0.0 Значение по умолчанию для параметра exclude_disabled изменили с false на true , но это не повлияет на результат, поскольку отключенные функции удаляются из таблицы функций при компиляции.
7.0.15, 7.1.1 Добавили параметр exclude_disabled.

Примеры

Пример #1 Пример получения массива объявленных функций функцией get_defined_functions()

<?php
function myrow($id, $data)
{
 return "<tr><th>$id</th><td>$data</td></tr>\n";
}
$arr = get_defined_functions();
print_r($arr);
?>

Вывод приведённого примера будет похож на:

Array
(
 [internal] => Array
 (
 [0] => zend_version
 [1] => func_num_args
 [2] => func_get_arg
 [3] => func_get_args
 [4] => strlen
 [5] => strcmp
 [6] => strncmp
 ...
 [750] => bcscale
 [751] => bccomp
 )
 [user] => Array
 (
 [0] => myrow
 )
)

Смотрите также

  • function_exists() - Возвращает true, если указанная функция определена
  • get_defined_vars() - Возвращает массив всех определённых переменных
  • get_defined_constants() - Возвращает ассоциативный массив с именами всех констант и их значений
  • get_declared_classes() - Возвращает массив с именами объявленных классов

Нашли ошибку?

ИнструкцияИсправлениеСообщение об ошибке
+Добавить

Примечания пользователей 5 notes

up
15
kkuczok at gmail dot com
13 years ago
You can list all arguments using ReflectionFunction class. It's not necessary to parse selected files/files as suggested by Nguyet.Duc.
http://php.net/manual/pl/class.reflectionfunction.php
Example:
<?php
function foo(&$bar, $big, $small = 1) {}
function bar($foo) {}
function noparams() {}
function byrefandopt(&$the = 'one') {}
$functions = get_defined_functions();
$functions_list = array();
foreach ($functions['user'] as $func) {
 $f = new ReflectionFunction($func);
 $args = array();
 foreach ($f->getParameters() as $param) {
 $tmparg = '';
 if ($param->isPassedByReference()) $tmparg = '&';
 if ($param->isOptional()) {
 $tmparg = '[' . $tmparg . '$' . $param->getName() . ' = ' . $param->getDefaultValue() . ']';
 } else {
 $tmparg.= '&' . $param->getName();
 }
 $args[] = $tmparg;
 unset ($tmparg);
 }
 $functions_list[] = 'function ' . $func . ' ( ' . implode(', ', $args) . ' )' . PHP_EOL;
}
print_r($functions_list);
?>

Output:
Array
(
 [0] => function foo ( &&bar, &big, [$small = 1] )
 [1] => function bar ( &foo )
 [2] => function noparams ( )
 [3] => function byrefandopt ( [&$the = one] )
)
up
12
mIHATESPAMduskis at bates dot edu
23 years ago
At least with PHP 4.2.3 on a GNU/Linux/Apache platform, get_defined_functions() returns user-defined functions as all-lower case strings regardless of how the functions are capitalized when they are defined.
Threw me for a loop.
up
6
peten at spam dot me dot not dot frontiernet dot net
24 years ago
Here's a useful trick with the get_defined_functions function - show all available functions with a link to the documentation (you can even change the mirror it goes to):
<?php
 // the php mirror 
 $php_host = "http://us2.php.net/";
 // the number of cols in our table
 $num_cols = 3;
 $ar = get_defined_functions();
 $int_funct = $ar[internal];
 sort($int_funct);
 $count = count($int_funct);
?>
<html>
 <head>
 <title>
 Available PHP Functions
 </title>
 </head>
 <body>
 <p>
 <?php print $count; ?> functions 
 available on 
 <?php 
 print $_SERVER[SERVER_NAME]; 
 ?>
 (<a href="<?php print $php_host;?>" 
 target="phpwin">php</a>
 version 
 <?php print phpversion(); ?>)
 </p>
 <table align="center" border="2">
 <tr> 
<?php
 for($i=0;$i<$count;$i++) {
 $doc = $php_host 
 . "manual/en/function."
 . strtr($int_funct[$i], "_", "-") 
 . ".php";
 print " <td><a href=\"" . $doc 
 . "\" target=\"phpwin\">" 
 . $int_funct[$i] 
 . "</a></td>\n";
 if(($i > 1) 
 && (($i+$num_cols)%$num_cols==($num_cols-1))) 
 print " </tr>\n <tr>\n";
 }
 for($i=($num_cols-($count%$num_cols));$i>0;$i--) 
 print " <td>&nbsp;</td>\n";
?>
 </table>
 </body>
</html>
up
5
berchentreff at berchentreff dot de
20 years ago
look at here, list all the defined function on your php-Version and give as well formatted output width links onto the php-manual:
<html><head>
<style type="text/css"><!--
li{font-family:Verdana,Arail,sans-serif;width:500px;margin-top:7px;}
a{padding:4px;}
a.a1{font-size:12px;background-color:#CCCCCC;color:#663300;}
a.a1:hover{background-color:#663300;color:#CCCCCC;}
a.a1:visited{background-color:#fff;color:#999;}
a.a1:visited:hover{background-color:#fff;color:#999;}
a.a0{font-size:12px;background-color:#CCCCFF;color:#663399;}
a.a0:hover{background-color:#663399;color:#CCCCFF;}
a.a0:visited{background-color:#ffC;color:#999;}
a.a0:visited:hover{background-color:#ffC;color:#999;}
--></style>
</head><body style="background-color:#999;">
<?php
$arr = get_defined_functions();
foreach($arr as $zeile){
sort($zeile);$s=0;
foreach($zeile as $bzeile){
$s=($s)?0:1;
echo "<li><a class='a".$s."' href='http://de.php.net/".$bzeile."'>".$bzeile."</a></li>";}
}
?>
</body>
</html>
up
2
Muneeb Aslam
10 years ago
This is rather a simple non-confusing script to get the function names linked to its manual page on php.net. Hope it helps someone. Commented script is self explainatory
<?php
 
 /*declare a variable to php manual of functions.
 change the $lng to the region you want it for,
 i-e en/es/de etc etc */
 $lng = "es";
 $url = "http://www.php.net/manual/".$lng."/function.";
 
 // get defined functions in a variable (it will be a 2D array)
 $functions = get_defined_functions();
 
 // Run nested foreach to get the function names
 foreach($functions as $function){
 foreach ($function as $functionName){
 
 /* Since php manual is using hyphens instead of underscores
 for functions, we will convert underscores to hyphen whereever
 there is one. */
 if(strpos($functionName,"_") !== false){
 $functionForURL = str_replace("_","-",$functionName);
 } else {
 $functionForURL = $functionName;
 }
 
 /* echo the link */
 echo "<a href='".$url.$functionForURL.".php'>".$functionName."</a><br />";
 }
 }
 
?>
+Добавить

AltStyle によって変換されたページ (->オリジナル) /