2015-08-02 2 views
1

Проблема:Получить список имен функций в PHP в виде текстовой строки

Я сделал некоторые исследования, чтобы выяснить, как вы могли бы получить список всех имен функций в PHP в виде текстовой строки, но без полного успеха , Я использовал get_defined_functions(), чтобы получить список функций, но она не возвращает variable handling functions (см http://php.net/manual/en/ref.var.php), РАЗНОЕ функции, такие как 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 . ', '; 
} 

Желаемый результат:

Чтобы получить все предопределенные функции в виде текстовой строки.

ответ

1

для всех функций, используйте этот код:

<?php 

foreach(get_loaded_extensions() AS $module) { 

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

} 

?> 

ПРИМЕЧАНИЕ: "эхо", "умереть" ... языковые конструкции. Невозможно получить их через функцию.

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__'); 
?> 
+0

Почему это не распечатывает функцию 'array()'? – kexxcream

+0

@kexxcream 'array()' также является языковой конструкцией – surfer190

+0

@ surfer190 Я вижу, почему это организовано под функциями массива? http://php.net/manual/en/function.array.php – kexxcream

1

get_defined_function() возвращается встроенный (внутренний) и определяемые пользователем функции.

echo is not actually a function (it is a language construct) из php docs

die и array также язык построить

на вопрос выделяя defference между конструкциями языка и встроенных методов является here. Они в основном reserved keywords и основные элементы языка программирования.

Смежные вопросы