2015-09-30 59 views
-2

我已经在这个函数跌跌撞撞今天:元素阵列,而不与键元素混合键

public function rules() 
{ 
    return [ 
     ['status', 'default', 'value' => self::STATUS_ACTIVE], 
     ['status', 'in', 'range' => [self::STATUS_ACTIVE, self::STATUS_DELETED]], 
    ]; 
} 

我不明白这样的结构:

['status', 'default', 'value' => self::STATUS_ACTIVE]

是如何形成的前两个条目只有价值,第三个有一个键和一个值。这是PHP语言允许的吗?

+2

的'key'是可选的。如果没有指定,PHP将使用以前使用的最大整数键的增量。所以实际上你的数组看起来像'[0 =>'status',1 =>'default','value'=> self: :STATUS_ACTIVE]' –

+0

@Uchiha,谢谢。你会说不指定所有元素的键是不好的做法吗?据我所知,混合整数键与字符串也不是一个好主意? –

+1

不,这不是一个坏习惯,因为键是可选的,所以用户可以自己定义键,所以他可以直接访问它,像在这里一样定义它的键,​​你可以简单地调用你定义的键'value'像'$ your_array [ 0] ['value']' –

回答

0

这并不新鲜。密钥只是可选的。您可以在阵列的PHP文档的第一个示例中找到类似的案例。

这是它。

<?php 
$fruits = array (
    "fruits" => array("a" => "orange", "b" => "banana", "c" => "apple"), 
    "numbers" => array(1, 2, 3, 4, 5, 6), 
    "holes" => array("first", 5 => "second", "third") 
); 
?> 

http://php.net/manual/en/function.array.php