以下代码正在运作
<?php
print_r(array_merge(${"_".$_SERVER['REQUEST_METHOD']}, $_GET));
?>
但是当我在函数或类中使用此代码时,存在问题
<?php
class Request {
public static function init() {
return array_merge(${"_".$_SERVER['REQUEST_METHOD']}, $_GET);
}
}
print_r(Request::init());
?>
结果返回一个包含2个错误的空数组:
警告是合乎逻辑的,但我不理解通知。有没有人遇到过这个问题?有解决方案吗? PHP核心存在问题?
答案 0 :(得分:1)
从documentation(页面底部):
,而不是使用变量语法变量请注意,变量变量不能在函数或类方法中使用PHP的超全局数组。变量$ this也是一个无法动态引用的特殊变量。
<?php
class Request {
public static function init() {
return array_merge($GLOBALS["_".$_SERVER['REQUEST_METHOD']], $_GET);
}
}
print_r(Request::init());
?>