PHP Conference Fukuoka 2025

get_defined_functions

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

get_defined_functionsReturns an array of all defined functions

Опис

get_defined_functions(bool $exclude_disabled = true): array

Gets an array of all defined functions.

Параметри

exclude_disabled

Whether disabled functions should be excluded from the return value. This parameter has no effect since PHP 8.0.0.

Увага

This feature has been DEPRECATED as of PHP 8.5.0. Relying on this feature is highly discouraged.

Значення, що повертаються

Returns a multidimensional array containing a list of all defined functions, both built-in (internal) and user-defined. The internal functions will be accessible via $arr["internal"], and the user defined ones using $arr["user"] (see example below).

Журнал змін

Версія Опис
8.5.0 The exclude_disabled parameter has been deprecated, as it no longer has any effect.
8.0.0 The default value of the exclude_disabled parameter has been changed from false to true. However, it will not have any effect as disabled functions are removed from the function table at compile time.
7.0.15, 7.1.1 The exclude_disabled parameter has been added.

Приклади

Приклад #1 get_defined_functions() example

<?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
        )

)

Прогляньте також

add a note

User Contributed Notes 5 notes

up
15
kkuczok at gmail dot com
12 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.phpExample:<?phpfunction 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
10
mIHATESPAMduskis at bates dot edu
22 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
23 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
19 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
9 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 />";        }    }    ?>
To Top