2013-05-04 66 views
1

是否有像$ _GET一样的函数? 我的意思是转变

"?var1=5&var2=true" 

$var1=5; 
$var2="true"; 

所以,我可以在一个函数使用一个变量(字符串),并从中获取许多变量的函数吗?

像:

function manual_GET($args){ /* ? */} 

function myFunction($args) 
{ 
manual_GET($args); 
if(isset($var1))/* doesn't have to be this way, btw */ 
{ 
    do_something($var1); 
} 
//etc 
} 

附: :我不想在URL中使用$ _GET,因为这个文件是一个类文件(即database_library.php),所以我不直接执行它,或者进行AJAX调用。我只是require_once();而已。

+1

[ 'parse_str'](http://php.net/manual/en/function.parse-str.php)会,但真正的问题是_why_你会做这样的事情吗? – Jon 2013-05-04 07:33:19

+0

@Jon谢谢,我只是用一个编辑来解释它。 – void 2013-05-04 07:34:25

回答

2

解决它的一种方法。

function myFunction($args){ 
return parse_str($args,$values); 
} 
+0

嗯。什么? $ value是在哪里分配的?你怎么会假设索引'0'将是什么是想要的?为什么你会回应它而不是返回它。另外...有__no__函数的返回值。 ^^如果你要展示它,你应该正确地做。 ^^ – Jon 2013-05-04 07:43:34

1
function parseQueryString($str) { 
    $op = array(); 
    $pairs = explode("&", $str); 
    foreach ($pairs as $pair) { 
    list($k, $v) = array_map("urldecode", explode("=", $pair)); 
    $op[$k] = $v; 
    } 
return $op; 

}

它就像parse_str但不转换的空间和点来强调

0

“?VAR1 = 5 & VAR2 =真正的”

foreach ($_GET AS $k=>$v){ 
    $$k=$v; 
} 

echo $var1; // print 5 
echo $var2; // print true 
相关问题