Php 如何使用参数$\u GET中的变量?示例:($\u GET[$my\u var])

Php 如何使用参数$\u GET中的变量?示例:($\u GET[$my\u var]),php,wordpress,variables,parameters,get,Php,Wordpress,Variables,Parameters,Get,我正在为wordpress开发一个插件,根据用户的偏好,通过wordpress管理面板将$GET的参数记录在数据库中。必须通过$\u GET进行以下验证,这是函数: $db_url = get_option('my_get_url'); // returns the value of the database entered by User // on this case return --> page=nosupport $url_explode = explode("=", $db

我正在为wordpress开发一个插件,根据用户的偏好,通过wordpress管理面板将$GET的参数记录在数据库中。必须通过$\u GET进行以下验证,这是函数:

$db_url = get_option('my_get_url');
// returns the value of the database entered by User
// on this case return -->  page=nosupport

$url_explode = explode("=", $db_url);
$url_before = $url_explode[0]; // --> page
$url_after = $url_explode[1]; // --> nosupport

echo "Before: ".$url_before; // here are ok, return --> page
echo "After: ".$url_after; // here are ok, return --> nosupport
我的问题是:

// here $_GET no have any value, dont work on validate...
if($_GET[$url_before] != ""){ 
    if($_GET['$url_before']=="nosupport"){
        // my function goes here...
    }
}
I使用以下参数进行测试:

echo $_GET[$url_before];
但是不要返回任何值

if($_GET[$url_before] != ""){ 
    if($_GET[$url_before]=="nosupport"){ // note no "" here
        // my function goes here...
    }
}

在您的解决方案中,键被视为一个字符串,没有计算任何变量。

在第二个条件中,您忘记了去掉'

你写道:

     $_GET['$url_before']
我猜应该是:

     $_GET[$url_before]

我发现了这个问题,我已经测试了所有这些选项,但从来没有工作过,问题是我在我的网站主页内测试函数,而在主页(mysite.com)上没有获得参数(?page=nossuport),所以总是返回空值​​, 当我在GET中使用变量或使用echo$GET[$my_var]进行测试时。。这是我的一个极大的疏忽,永远不会起作用

顺便说一下,这两个参数工作正常:

$_GET[$url_before]
$_GET["$url_before"]
问题已解决,感谢您的帮助。

foreach($\u GET as$key=>$value){ 如果($key==“无支持”){

}
}

$\u GET['$url\u在']之前]!=$_GET[$url\u before]
,丢失引号。除了引号之外,他确实说过,未加引号的版本仍然没有返回任何内容。您可能需要检查整个
$\u GET
数组中的内容,以防
$url\u before
设置不正确。。