Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : Function Handling Functions : get_defined_functions

get_defined_functions

Returns an array of all defined functions (PHP 4 >= 4.0.4, PHP 5)
array get_defined_functions ( )

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

The above example will output something similar to:

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
       )

)

Code Examples / Notes » get_defined_functions

berchentreff

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>


kaneccc

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:
---
// 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


peten

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>
 


  <?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(); ?>)
 
 <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 dot net

Here is another example which list all the available functions and gives a link to the manual pages at the same time.
$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>
\n";
               }
       }
}


mihatespamduskis

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.


Change Language


Follow Navioo On Twitter
call_user_func_array
call_user_func
create_function
func_get_arg
func_get_args
func_num_args
function_exists
get_defined_functions
register_shutdown_function
register_tick_function
unregister_tick_function
eXTReMe Tracker