我试图通过其索引访问数组,但我需要从查询字符串中获取此。尝试获取非对象的属性时试图访问数组
我已经试过:
$var = $_GET['id'];
echo $xml->subway->line[$var]->name;
这是行不通的。但这:
echo $xml->subway->line[0]->name;
我试图通过其索引访问数组,但我需要从查询字符串中获取此。尝试获取非对象的属性时试图访问数组
我已经试过:
$var = $_GET['id'];
echo $xml->subway->line[$var]->name;
这是行不通的。但这:
echo $xml->subway->line[0]->name;
试试这个:你是从一个阵列获得项目
$var = isset($_GET['id']) ? (int)$_GET['id'] : false;
if ($var !== false && isset($xml->subway->line[$var]) {
echo $xml->subway->line[$var]->name;
} else {
echo 'Your problem is either "id" not being in $_GET or $xml object does not have line with that index';
var_dump($_GET); //see what is 'id'
}
每次通过索引,你应该检查它是否是设置首先要避免这样的错误。
仍然不起作用。同样的错误 – user3528831
很可能您的$_GET
变量将作为string
而不是integer
返回,因此PHP将假定索引不存在。尝试型铸造它作为
$var = (int)$_GET['id'];
这迫使PHP对待$_GET
作为integer
你可以自己检查一下,$ var是一个字符串还是整数$ array索引仍然会被设置。所以如果'$ id ='0'; $ arr [0] ='Hello';'通过执行'echo $ arr [$ id];'将返回'Hello' – GGio
@GGio它绝对应该这样做,但我有一些问题$ _GET值不工作索引之前,类型转换似乎是唯一的(尽管有力的)解决方案 – Matt
仍然无法正常工作,但我得到了同样的错误。 – user3528831
什么是'回声$ _GET [ '身份证'];'? – AbraCadaver
你可以发布你的表单吗? – ksealey
尝试使用'intval($ _ GET ['id'])''。它可能将'$ var'解释为字符串''0'。 –