我认为我或者只是愚蠢或者其他什么,但我仍然无法理解他们。
我正在尝试从此变量$ result中访问“patient_age”。
这是var转储。
array(1) {
["intervention"]=>
array(1) {
[0]=>
object(stdClass)#23 (21) {
["intervention_id"]=>
string(1) "1"
["patient_id"]=>
string(1) "1"
["name_id"]=>
string(1) "1"
["department_id"]=>
string(1) "1"
["dosage_id"]=>
NULL
["edocument"]=>
string(10) "Bruce1.jpg"
["user_id"]=>
string(1) "0"
["duration"]=>
string(8) "02:26:00"
["submitted"]=>
string(19) "2011-07-31 19:56:29"
["intervention_comment"]=>
NULL
["patient_age"]=>
string(2) "34"
["patient_height"]=>
string(4) "1.34"
["patient_weight"]=>
string(2) "45"
["patient_gender"]=>
string(4) "Male"
["department_name"]=>
string(10) "Cardiology"
["intervention_name_id"]=>
string(1) "1"
["intervention_name"]=>
string(5) "IVH 2"
["intervention_description"]=>
string(0) ""
["dosage_emitted"]=>
NULL
["dosage_absorbed"]=>
NULL
["dosage_period"]=>
NULL
}
}
}
我试过了:
$result[0]->patient_age;
$result[1]->patient_age;
$result['intervention']->patient_age;
$result['intervention'][0]->patient_age;
希望有人可以给我答案,但也解释他们是如何得出这个答案的,因为所有其他Stackoverflow问题他们只提供解决方案而不是方法。
任何人都有任何提示如何导航嵌套变量。
由于
答案 0 :(得分:1)
$object=$result['intervention'][0];
print $object->patient_age;
检查是否有其他变量可访问
答案 1 :(得分:0)
这应该是你的最后一个例子。真的,这并不难。 $ result是一个包含单个元素的数组,其中包含键“干预”。您可以使用[和]访问数组的元素。因此,使用$ result ['intervention'],您将获得一个也包含单个元素的数组:键0处的元素,它是stdClass的一个实例。你可以通过使用$ result ['intervention'] [0]来达到这个目的。如果要从该stdClass获取patient_age,可以使用 - >访问实例变量。所以,这应该有效:
echo $result['intervention'][0]->patient_age;
以下将导致$ patient成为stdClass实例,然后您可以从以下位置检索patient_age:
$patient = $result['intervention'][0];
echo $patient->patient_age;
答案 2 :(得分:0)
只要patient_age是公共变量*,$结果[0] - > patient_age;
就可以工作*。如果它是私有的或受保护的,您将需要使用对象中的方法来访问它。
你从未说过你尝试过的东西发生了什么。空值?错误/警告信息?
证明:
<?php
class iv {
var $patient_age;
function __construct($val)
{
$this->patient_age=$val;
}
}
$t=new iv(40);
$result=array(0=>$t);
var_dump($result) . "\n\n";
print "val = " . $result[0]->patient_age . "\n\n";
[user@example ~]$ php -q t.php
array(1) {
[0]=>
object(iv)#1 (1) {
["patient_age"]=>
int(40)
}
}
val = 40
[user@example ~]$