繁体   English   中英

尝试访问数组时尝试获取非对象的属性

[英]Trying to get property of non-object when trying to access array

我正在尝试通过其索引访问数组,但是我需要从查询字符串中获取它。

我试过了:

 $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'
}

每次从索引数组中获取项目时,都应检查是否首先设置了该项目,以避免出现此类错误。

您的$_GET变量很可能以string而不是integer因此PHP将假定索引不存在。 尝试将其强制转换为

$var = (int)$_GET['id'];

这迫使PHP将$_GET视为integer

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM