问题:
我做了一些研究,弄清楚如何在文本字符串中获取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 . ', ';
}
期望的输出:
获取文本字符串中的所有预定义函数。
答案 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()
返回内置(内部)和用户定义的函数。
echo is not actually a function (it is a language construct)
突出语言结构和内置方法之间的差异的问题是here。它们基本上是reserved keywords和编程语言的基本元素。