在文本字符串中获取PHP中的函数名列表

时间:2015-08-02 08:48:13

标签: php string function variables

问题:

我做了一些研究,弄清楚如何在文本字符串中获取PHP中所有函数名的列表但没有取得完全成功。我使用get_defined_functions()获取了一系列函数,但它没有返回variable handling functions(参见http://php.net/manual/en/ref.var.php),misc函数如die()(参见http://php.net/manual/en/ref.misc.php),有些字符串函数,如echo(请参阅http://php.net/manual/en/ref.strings.php)和函数,如array()

代码:

$arr = get_defined_functions(); 

foreach ($arr['internal'] as $key => $value) 
{ 
    echo $value . ', ';
} 

期望的输出:

获取文本字符串中的所有预定义函数。

2 个答案:

答案 0 :(得分:1)

对于所有函数,请使用以下代码:

<?php 

foreach(get_loaded_extensions() AS $module) {

 echo "<pre>"; print_r(get_extension_funcs ($module)); echo "</pre>";

}

?>

注意:&#34; echo&#34;,&#34; die&#34; ...是语言结构。没有办法通过功能获得它们。

http://php.net/manual/en/reserved.keywords.php

这是一个数组:

<?php
$keywords = array('__halt_compiler', 'abstract', 'and', 'array', 'as', 'break', 'callable', 'case', 'catch', 'class', 'clone', 'const', 'continue', 'declare', 'default', 'die', 'do', 'echo', 'else', 'elseif', 'empty', 'enddeclare', 'endfor', 'endforeach', 'endif', 'endswitch', 'endwhile', 'eval', 'exit', 'extends', 'final', 'for', 'foreach', 'function', 'global', 'goto', 'if', 'implements', 'include', 'include_once', 'instanceof', 'insteadof', 'interface', 'isset', 'list', 'namespace', 'new', 'or', 'print', 'private', 'protected', 'public', 'require', 'require_once', 'return', 'static', 'switch', 'throw', 'trait', 'try', 'unset', 'use', 'var', 'while', 'xor');

$predefined_constants = array('__CLASS__', '__DIR__', '__FILE__', '__FUNCTION__', '__LINE__', '__METHOD__', '__NAMESPACE__', '__TRAIT__');
?>

答案 1 :(得分:1)

get_defined_function()返回内置(内部)和用户定义的函数。

来自php docs

echo is not actually a function (it is a language construct)

diearray也是语言构造

突出语言结构和内置方法之间的差异的问题是here。它们基本上是reserved keywords和编程语言的基本元素。