我正在Kohana的资料中探索以下代码:
foreach ($expected as $field)
{
// Use the submitted value or NULL if no data exists
$data[$field] = Arr::get($this, $field);
if (isset($rules[TRUE]))
{
if ( ! isset($rules[$field]))
{
// Initialize the rules for this field
$rules[$field] = array();
}
// Append the rules
$rules[$field] = array_merge($rules[$field], $rules[TRUE]);
}
}
我对这部分isset($rules[TRUE])
感兴趣 - 这项检查的目的是什么?为什么他们将TRUE
指定为数组的键?
我刚刚找到了这种结构的下一个用法:
// Remove the rules that apply to every field
unset($rules[TRUE]);
答案 0 :(得分:1)
看起来最后一条评论揭示了这种情况。 $rules['fieldName']
似乎包含适用于特定字段的规则(在此示例中,名为“fieldName”的字段),而$rules[TRUE]
包含适用于所有字段的规则。我想它也可以被称为$rules['all']
之类的任何其他内容,但是如果碰巧有一个名为“all”的字段,那么开发人员希望避免冲突。
然后,以下行将通用规则添加到特定字段的规则中:
// Append the rules
$rules[$field] = array_merge($rules[$field], $rules[TRUE]);