在下面的代码中,我了解到$_POST['dataId']
$_POST['id']
正在将数据行分配给foreach
。什么是$insuranceType_list
?对于$l
?
在任何变量前面$k
可以使变量成为全局变量吗?这意味着我可以在整个应用程序的任何地方访问它?
index
我也不知道这里发生了什么:
@
如果有人能解释我会很有帮助。
答案 0 :(得分:2)
让我们剖析:
$insuranceType_list
是一个对象数组。我知道这一点是因为您使用$l->something
中的箭头访问值,如果您有一个数组数组,您可以像$l['something']
@
只是意味着您正在抑制该变量的错误。它通常用在你不想抛出错误的函数中。$k
foreach($insuranceType_list as $l)
,这意味着您不关心索引,只需要每次迭代的值。但是,如果您出于任何原因计划使用密钥,那么您将使用当前正在执行的$k
变量。实施例: 假设您有一个数组是这样的:
$list = [
[
'name' => 'john'
'age' => 29
],
[
'name' => 'jane'
'age' => 23
]
];
如果你想创建“约翰29岁”的字符串。然后你会做以下事情:
foreach($list as $l){
echo "{$l['name']} is {$l['age']} years old";
}
但是如果你想要字符串说“John在列表中排名第一,并且已经29岁了”。然后你会做以下事情:
foreach($list as $k => $l){
echo "{$l['name']} is #{$k} on the list, and is {$l['age']} years old";
}
尽管如此,我会以这种方式缩短您的代码:
if (!empty($insuranceType_list)) {
foreach ($insuranceType_list as $l) {
$l->version_list = $this->mdl_quotation_template->getConditionTemplates('insurance_type_id=' . $l->id);
}
}