[英]How to retrieve value from returned object in php?
如何從php中復雜的對象結構中檢索值? 我知道使用 '->' 運算符我們可以訪問該值,但我對返回的對象感到非常困惑。 從返回的對象中,我想獲取字符值。 我怎么做? 我正在使用Neo4jPHP並嘗試執行密碼查詢“MATCH (n) RETURN distinct keys(n)”以返回所有不同的屬性鍵。 對行對象進行 var_dump 后,部分輸出如下所示。
編輯:- 在遵循 Mikkel 的建議后我編輯的代碼:-
$keyquery="MATCH (n) RETURN distinct keys(n)";
$querykey=new Everyman\Neo4j\Cypher\Query($client, $keyquery);
$resultkey = $querykey->getResultSet();
foreach ($resultkey as $row)
{
for($i=0;$i<count($row[0]);$i++)
{
echo $row[0][$i]; // returns all the property keys from the Row object
}
}
您不能直接訪問對象屬性,因為它被聲明為受保護的(只能從類或繼承類中訪問)。
但是,在這種情況下,開發人員通常會添加一個對象方法或重載函數,允許您訪問您要查找的信息。 查看源代碼,看起來您應該能夠使用以下任一方式訪問您要查找的數據:
// this works because the class implements Iterator
foreach ($myobject as $row) {
echo $row['keys(n)']; // outputs "character"
}
或者:
// this works because the class implements ArrayAccess
// don't ask me why they put keys and values in different arrays ('columns' and 'raw')
echo $myobject[0]['keys(n)']; // outputs "character"
您正在尋找的價值受到保護且無法訪問,
如果您查看Row類,您會發現您可以訪問它,將對象視為數組。
$character = $myRow[0];
查看您在此處轉儲的對象,您可以看到該對象正在實現 \\Iterator、\\Countable、\\ArrayAccess,這意味着您基本上可以將其視為數組。 底層數據源是受保護的 $raw。
$queryResult = ...;
foreach ($queryResult as $row) {
echo $row['character'] . PHP_EOL;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.