Php I';我在做啧啧,但我不懂这个语法
我通常编写oop代码,这可能就是为什么我从未见过这种编码方式。我不理解下面多维数组中的语法,为什么Php I';我在做啧啧,但我不懂这个语法,php,procedural-programming,Php,Procedural Programming,我通常编写oop代码,这可能就是为什么我从未见过这种编码方式。我不理解下面多维数组中的语法,为什么[$obj->id]['label']不仅仅是$obj['id']['label']] $sql = "SELECT id, label, link_url, parent_id FROM dyn_menu ORDER BY parent_id, id ASC"; $items = mysql_query($sql); while ($obj = mysql_fetch_object($items)
[$obj->id]['label']
不仅仅是$obj['id']['label']]
$sql = "SELECT id, label, link_url, parent_id FROM dyn_menu ORDER BY parent_id, id ASC";
$items = mysql_query($sql);
while ($obj = mysql_fetch_object($items)) {
if ($obj->parent_id == 0) {
$parent_menu[$obj->id]['label'] = $obj->label;
$parent_menu[$obj->id]['link'] = $obj->link_url;
} else {
$sub_menu[$obj->id]['parent'] = $obj->parent_id;
$sub_menu[$obj->id]['label'] = $obj->label;
$sub_menu[$obj->id]['link'] = $obj->link_url;
if (!isset($parent_menu[$obj->parent_id]['count'])) {
$parent_menu[$obj->parent_id]['count'] = 0;
}
$parent_menu[$obj->parent_id]['count']++;
}
}
mysql_free_result($items);
这是因为获取结果行作为对象。其他的,例如,将结果行作为关联数组来获取。
[$obj->id]['label']
和$obj['id']['label']
甚至都不是一回事
$parent\u菜单[$obj->id]['label']
从$obj->id
键进入$parent\u菜单的值中获取'label'
键的值$obj['id']['label']
从$obj
数组(非数组)中具有'id'
键的值获取具有'label'
键的值
数组键和属性在PHP中是不可互换的,因为它们在JavaScript中是可互换的。有不同的值:
$obj->id
有一个值,它引用一个值。如果只写“id”,则引用键“id”(作为字符串)
假设您有一个属性id设置为341的obj
这个阵列:
$sub_menu = array(
2 => array(
'name' => 'Blog',
'label' => 'My Blog'
),
341 => array(
'name' => 'Downloads',
'label' => 'Downloads'
),
'id' => array(
'name' => 'Tutorials',
'label' => 'Tutorials Awesome!'
)
);
因此,当您调用数组时:
$sub_菜单[$obj->id]['label']
那么您实际上正在呼叫:
$sub_菜单[341]['label']
这等于“下载”
如果你打电话
$sub_menu['id']['label']
然后用键'id'调用子菜单。
这相当于“教程太棒了!” 简单地说:
$parent_menu[$obj->id]['label'] = $obj->label;
相当于:
$myID = $obj->id;
$parent_menu[$myID]['label'] = $obj->label;
操作是检索$obj
的class属性id
的值,并将其用作$parent\u菜单
数组中的索引。这是一种动态访问任何数组键的方法。$obj->id
的值用于访问数组键。我以为您理解OOP$obj是一个对象。(关于mysql的强制性注释*)-。它们不再得到维护和维护。看到红色的盒子了吗?相反,要了解并使用or-无论是[$obj->id]['label']
还是$obj['id']['label']]
都不是有效的语法-你在这里问什么?@minitech:真的吗?我希望PHP在初始化和索引同一行中的数组时强加任意规则。