2011-09-05 71 views
-3

我有以下简单的PHP代码,数组键名与下划线

parse_str($_SERVER['QUERY_STRING'], $paycodetnx); 
var_dump($paycodetnx); 
echo $paycodetnx['tnx_id']; 

的输出var_dump($paycodetnx);

array(6) { 
["command"]=> 
string(3) "pay" 
["txn_id"]=> 
string(9) "650695821" 
["txn_date"]=> 
string(14) "20110905101357" 
["account"]=> 
string(9) "987654321" 
["sum"]=> 
string(6) "500.00" 
["trm_id"]=> 
string(7) "8592467" 
} 

echo $paycodetnx['tnx_id'];返回空
和我看到的问题是只与数组的键名其中有“下划线”
没有“underscope”的数组键确实回声良好。

我不知道为什么这个简单的代码会给出错误
你有什么建议吗?

+5

''tnx_id''应该是''txn_id''。 – Andreas

+1

@Andreas +1好搭档!而且,这就是为什么常量应该优先于原始字符串作为数组引用。 – jensgram

回答

3

你有一个错字:你输入tnx_id而不是txn_id。看看这个:

parse_str($_SERVER['QUERY_STRING'], $paycodetnx); 
// wrong: 
//var_dump($paycodetnx['tnx_id']); 
// right: 
var_dump($paycodetnx['txn_id']);