为什么指定TRUE作为数组的键来检查是否设置了变量?

时间:2014-02-25 18:17:09

标签: php

我正在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]);

1 个答案:

答案 0 :(得分:1)

看起来最后一条评论揭示了这种情况。 $rules['fieldName']似乎包含适用于特定字段的规则(在此示例中,名为“fieldName”的字段),而$rules[TRUE]包含适用于所有字段的规则。我想它也可以被称为$rules['all']之类的任何其他内容,但是如果碰巧有一个名为“all”的字段,那么开发人员希望避免冲突。

然后,以下行将通用规则添加到特定字段的规则中:

// Append the rules
$rules[$field] = array_merge($rules[$field], $rules[TRUE]);