[英]Get Random XYZ on surface of Sphere from Sphere Loc and Radius
[英]“Build” $_GET['xyz'] from variables
我有兩個變量:
$method = "_GET";
$var = "id";
我現在需要這個:
$parameter = $_GET['id'];
我嘗試過這樣的事情:
$parameter = ${$method.'[\''.$var.'\']'};
但這是行不通的。 有任何想法嗎?
嘗試:
$data = $$method;
$parameter = $data[ $var ];
下列:
$method = '_GET';
$var = 'id';
$data = $$method;
print_r($data);
echo $data[ $var ];
將輸出:
Array
(
[id] => test
)
test
假設查詢字符串是?id=test
@Leggendario指出了一個有意思的警告:即使$ _GET是一個超級全局變量,這也不會在全局范圍之外起作用。 您必須先添加global $$method
然后才能在函數中引用$$method
。
而且,事實證明, 有一種方法可以做到這一點 :
${$method}[$var];
由於您不需要集中任何字符串來形成變量名,因此只需將其放在{}
:
$parameter = ${$method}[$var];
由於僅有的兩種方法是_GET
和_POST
,所以另一種可能的解決方案是改用三元運算符 :
$parameter = $method == "_GET" ? $_GET[$var] : $_POST[$var];
這基本上是一個變量變量:
$method = '_GET'; $var = 'id'; $foo = $$method[$var];
原來根本不起作用...是的php一致性,今天我學到了我的新知識。
這有效:
php > $_GET['id'] = 'foo';
php > $method = '_GET';
php > $offset = 'id';
php > echo ${$method}[$offset];
foo
並據證明: http : //php.net/manual/en/language.variables.variable.php搜索“歧義”
您可以嘗試以下方法:
filter_input(constant("INPUT" . $method), $var);
constant()
函數讓您通過字符串名稱引用filter_input()
函數的INPUT_GET
常量值。
使用此方法,您可以檢索該值,並可以選擇使用此頁面上的過濾器值對其進行過濾/消毒,以提高安全性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.