PHP 8.4.1 Released!

get_defined_functions

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

get_defined_functionsRetorna um array com todas as funções definidas

Descrição

get_defined_functions(bool $exclude_disabled = true): array

Obtém um array com todas as funções definidas.

Parâmetros

exclude_disabled

Opção para definir se funções desabilitadas devem ser excluídas do valor de retorno.

Valor Retornado

Retorna um array multidimensional contendo uma lista de todas as funções definidas, tanto as internas quanto as definidas pelo usuário. As funções internas podem ser acessadas em $arr["internal"], e as definidas por usuário em $arr["user"] (veja exemplo abaixo).

Registro de Alterações

Versão Descrição
8.0.0 O valor padrão do parâmetro exclude_disabled mudou de false para true.
7.0.15, 7.1.1 O parâmetro exclude_disabled foi adicionado.

Exemplos

Exemplo #1 Exemplo de 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);
?>

O exemplo acima produzirá algo semelhante 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
        )

)

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 5 notes

up
15
kkuczok at gmail dot com
11 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
10
mIHATESPAMduskis at bates dot edu
21 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
22 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
18 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