Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数组中不带键的元素与带键的元素混合_Php - Fatal编程技术网

Php 数组中不带键的元素与带键的元素混合

Php 数组中不带键的元素与带键的元素混合,php,Php,我今天偶然发现了这个函数: public function rules() { return [ ['status', 'default', 'value' => self::STATUS_ACTIVE], ['status', 'in', 'range' => [self::STATUS_ACTIVE, self::STATUS_DELETED]], ]; } 我不明白这个结构: ['status','default','value

我今天偶然发现了这个函数:

public function rules()
{
    return [
        ['status', 'default', 'value' => self::STATUS_ACTIVE],
        ['status', 'in', 'range' => [self::STATUS_ACTIVE, self::STATUS_DELETED]],
    ];
}
我不明白这个结构:

['status','default','value'=>self::status\u ACTIVE]


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

这不是什么新鲜事。密钥只是可选的。您可以在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")
);
?>

该键是可选的。如果未指定,PHP将使用以前使用的最大整数键的增量。。所以实际上你的数组看起来像[0=>'status',1=>'default',value'=>self::status\u ACTIVE]@Uchiha,谢谢。您认为不为所有元素指定键是一种不好的做法吗?据我所知,将整型键与字符串混合也不是一个好主意?不,这不是一个坏做法,因为键是可选的,用户可以自己定义键,这样他就可以直接访问它,就像这里一样定义它的键,你可以简单地调用你定义的键值,比如$your_array[0]['value'],我认为这是一个坏做法,因为它会使以后遍历数据结构变得困难,因为它将有序列表和无序映射的概念混为一谈。在实践中,将遍历集合的这两种习惯用法分开通常更为清晰。但是无论你的船是什么样的,你都会发现它的实际用途…@deceze,是的,这正是我所想的。谢谢