簡體   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