Я пытаюсь получить все переменные, определенные php в массив.
Я пытался :
$myArr = get_defined_vars();
var_dump($myArr);
Результат:
array(4) { ["_GET"]=> array(0) { } ["_POST"]=> array(0) { } ["_COOKIE"]=> array(0) { } ["_FILES"]=> array(0) { } }
НО я ожидаю получить ВСЕ переменные, определенные php:
_SERVER["MIBDIRS"]
_SERVER["MYSQL_HOME"]
_SERVER["OPENSSL_CONF"]
_SERVER["PHP_PEAR_SYSCONF_DIR"]
_SERVER["PHPRC"]
_SERVER["TMP"]
_SERVER["HTTP_HOST"]
_SERVER["HTTP_USER_AGENT"]
_SERVER["HTTP_ACCEPT"]
_SERVER["HTTP_ACCEPT_LANGUAGE"]
_SERVER["HTTP_ACCEPT_ENCODING"]
_SERVER["HTTP_CONNECTION"]
_SERVER["PATH"]
_SERVER["SystemRoot"]
_SERVER["COMSPEC"]
_SERVER["PATHEXT"]
_SERVER["WINDIR"]
_SERVER["SERVER_SIGNATURE"]
_SERVER["SERVER_SOFTWARE"]
_SERVER["SERVER_NAME"]
_SERVER["SERVER_ADDR"]
_SERVER["SERVER_PORT"]
_SERVER["REMOTE_ADDR"]
_SERVER["DOCUMENT_ROOT"]
_SERVER["REQUEST_SCHEME"]
_SERVER["CONTEXT_PREFIX"]
_SERVER["CONTEXT_DOCUMENT_ROOT"]
_SERVER["SERVER_ADMIN"]
_SERVER["SCRIPT_FILENAME"]
_SERVER["REMOTE_PORT"]
_SERVER["GATEWAY_INTERFACE"]
_SERVER["SERVER_PROTOCOL"]
_SERVER["REQUEST_METHOD"]
_SERVER["QUERY_STRING"]
_SERVER["REQUEST_URI"]
_SERVER["SCRIPT_NAME"]
_SERVER["PHP_SELF"]
_SERVER["REQUEST_TIME_FLOAT"]
_SERVER["REQUEST_TIME"]
$_POST
$_GET
$_FILES
$_SERVER
$_REQUEST
$_SESSION
$_COOKIE
$_ENV
$GLOBALS
$argc
$argv
$this
$php_errormsg
$HTTP_SERVER_VARS
$HTTP_POST_VARS
$HTTP_POST_FILES
//etc...
Это невозможно с get_defined_vars()
или любые другие функции SPL, насколько мне известно. Вы должны проверить $_SERVER
и другие вручную. Кроме того, обычно вам не нужны все перечисленные переменные, некоторые из них устарели или эквивалентны друг другу.
Других решений пока нет …