PHP Doku:: Liefert ein Array aller definierten Funktionen - function.get-defined-functions.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzVariablen- und typbezogene ErweiterungenFunction HandlingFunction handling Funktionenget_defined_functions

Ein Service von Reinhard Neidl - Webprogrammierung.

Function handling Funktionen

<<function_exists

register_shutdown_function>>

get_defined_functions

(PHP 4 >= 4.0.4, PHP 5)

get_defined_functions Liefert ein Array aller definierten Funktionen

Beschreibung

array get_defined_functions ( void )

Liefert ein Array aller definierten Funktionen

Rückgabewerte

Liefert ein multidimensionales Array mit der Liste aller definierten internen und benutzerdefinierten Funktionen. Die internen Funktionen finden sich im Unterarray $arr["internal"], die benutzerdefinierten in $arr["user"] (siehe auch das folgende Beispiel). below).

Beispiele

Beispiel #1 get_defined_functions() Beispiel

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

$arr get_defined_functions();

print_r($arr);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

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
        )

)

Siehe auch


8 BenutzerBeiträge:
- Beiträge aktualisieren...
ChaosKaizer
10.07.2008 16:13
for user defined function

<?php
/**
 * @param string $function_name The user function name, as a string.
 * @return Returns TRUE if function_name  exists and is a function, FALSE otherwise.
 */
function user_func_exists($function_name = 'do_action') {
  
   
$func = get_defined_functions();
  
   
$user_func = array_flip($func['user']);
  
    unset(
$func);
  
    return ( isset(
$user_func[$function_name]) );  
}
?>
strrev xc.noxeh@ellij
4.06.2008 14:31
Please note that functions created with create_function() are not returned.
(However that might change in a later version)
spudinski at gmail dot com
1.04.2008 16:13
To search for a function.
<html>
<head>
<title>List of all Internal functions</title>
<style type="text/css">
body {
    background-color: #FFFFFF;
    color: #222222;
    font-size: 11px;
    font-family: arial, tahoma;
}
table {
    color: #222222;
    font-size: 11px;
    font-family: arial, tahoma;
}
tr.found {
    background-color: #66EE00;
    font-weight: bold;
}
a:link {
    color: #222222;
}
a:visited {
    color: #CCCCCC;
}
a:active {
    color: #444444;
}
a:hover {
    text-decoration: underline;
}
</style>
</head>
<body>
<p>
    <form method="GET">
    Search: <input type="text" name="search"><br>
    <input type="submit">
    </form>
</p>
<?php
   
if (!empty($_GET['search'])) {
        echo
'<p>' . '<a href="#' . $_GET['search'] . '">' .
       
'Goto ' . $_GET['search'] . '</a>' .
       
'<script type="text/javascript">
            window.onload = function() {
                document.location += "#'
. $_GET['search'] . '";
                return true;
            }
        </script>
        </p>'
;
    }
?>
<p>
    <table>
<?php
    $country
= 'us';
   
$functions = get_defined_functions();
   
$functions = $functions['internal'];
   
$num = 0;
    foreach(
$functions as $function) {
       
$num++;
        echo
'<tr ' . (($_GET['search'] == $function) ? 'class="found"' : '') . '><td>' .
       
number_format($num) . '</td><td>' . '<a name="' . $function . '" href="http://' . $country . '.php.net/' .
       
$function . '">' . $function . '</a>' . '</td></tr>';
    }
?>
    </table>
</p>
</body>
</html>
berchentreff at berchentreff dot de
31.03.2006 15:46
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>
php dot net at schou dot dk
20.05.2003 11:47
Here is another example which list all the available functions and gives a link to the manual pages at the same time.

<?php
$manref
= "http://www.php.net/manual/en/function";
$arr = get_defined_functions();
while (list(
$type,$list) = each($arr)) {
        if (
$type == "internal" && is_array($list)) {
               
sort($list);
                foreach (
$list as $func) {
                        if (
$func == "_")
                               
$func2 = "gettext";
                        else
                               
$func2 = preg_replace("/_/", "-", $func);
                        echo
"<a href=\"$manref.$func2.php\">$func</a><br>\n";
                }
        }
}
?>
kaneccc at seznam dot cz
28.03.2003 1:30
I've written simple XML-RPC server which automatically registers all defined functions starting with "RPC_" prefix and found, that with PHP 2.4.3 on Win32 and Linux platforms function names are in lowercase so the xmlrpc_server_call_method() is case sensitive which is correct with XML, but not with PHP and get_functions_defined()

I also suggest changing the function to have flags/options to return internal, user or both functions only and starting with prefix such as:

<?php
// constants
define( 'xxx_INTERNAL', 0x1 );
define( 'xxx_USER', 0x2 );
define( 'xxx_BOTH', 0x3 );

// declaration
array get_functions_defined( int options, string prefix );
?>

with both arguments optional.

Johnnie
mIHATESPAMduskis at bates dot edu
21.11.2002 23:47
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.
peten at spam dot me dot not dot frontiernet dot net
2.06.2002 19:28
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>



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)