get_defined_functions

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

get_defined_functionsReturns an array of all defined functions

Descrizione

get_defined_functions(bool $exclude_disabled = true): array

Gets an array of all defined functions.

Elenco dei parametri

exclude_disabled

Whether disabled functions should be excluded from the return value.

Valori restituiti

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

Log delle modifiche

Versione Descrizione
8.0.0 The default value of the exclude_disabled parameter has been changed from false to true.
7.0.15, 7.1.1 The exclude_disabled parameter has been added.

Esempi

Example #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);
?>

Il precedente esempio visualizzerà qualcosa simile a:

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
        )

)

Vedere anche:

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