class myClass {
public $user=array(
'first_name' => 'Andi',
'last_name' => 'Abdulloh',
'result' => array('A','B','C','D','E'));
}
$db=new myClass();
我通过执行first_name
来调用$db->user[first_name]
,但我无法弄清楚如何在该类中获取result
的值。当我尝试$db->user[result[0]]
时,它会返回错误。
答案 0 :(得分:3)
您应该使用:
$db->user['result'][0]
[]
允许您访问数组的元素:
$db->user
是一个数组,用named-keys索引;所以你使用$db->user['name of the key']
来访问它的子元素$db->user['result']
也是一个数组,但是用整数索引;所以你使用$db->user['result'][1]
来访问它的元素
并且,作为一个重要的旁注:您不应该使用$db->user[first_name]
:您应该使用$db->user['first_name']
- 请注意项目名称旁边的引号。
有关更多信息,请参阅我对此问题的回答: Is it okay to use array[key] in PHP?
答案 1 :(得分:0)
使用
$db->user['result'][0]
顺便说一句,没有引用字符串的数组键通常是不好的做法(并发出警告或通知,我不记得哪些)。因此,当您访问名字时,请改用:
$db->user['first_name']
为什么呢?关闭PHP documentation:
这[使用不带引号的数组键]是错误的,但它有效。原因是这段代码有一个未定义的常量(bar)而不是一个字符串('bar' - 注意引号)。 PHP可能在将来定义常量,不幸的是,这些代码具有相同的名称。它的工作原理是因为PHP自动将一个裸字符串(一个与任何已知符号不对应的不带引号的字符串)转换为包含裸字符串的字符串。例如,如果没有定义的名为bar的常量,那么PHP将替换字符串'bar'并使用它。
此外,如果不引用数组键,性能会下降; PHP必须在常量表中查找令牌,然后,意识到它没有定义,用它的等效字符串替换它。