Php 什么时候;密钥存储库在./composer.json“中重复;,作曲家用的是哪一个?

Php 什么时候;密钥存储库在./composer.json“中重复;,作曲家用的是哪一个?,php,json,composer-php,operator-precedence,Php,Json,Composer Php,Operator Precedence,我注意到我正在开发的包的composer.json中有重复的“repositories”键 这个包裹正在运作。因此,我希望执行“重构”,即在不改变行为的情况下修复代码 如果我想修复错误,我将不得不删除未使用的重复密钥 因此,问题是: 当“Key repositories是./composer.json中的重复项”时,composer使用哪一个 换句话说, composer是否使用它找到的第一个键并忽略未来的键 它是否忽略前一个键并使用找到的最后一个键 它是否以某种巧妙的方式合并键的子项 这是

我注意到我正在开发的包的composer.json中有重复的“repositories”键

这个包裹正在运作。因此,我希望执行“重构”,即在不改变行为的情况下修复代码

如果我想修复错误,我将不得不删除未使用的重复密钥

因此,问题是:

当“Key repositories是./composer.json中的重复项”时,composer使用哪一个

换句话说,

  • composer
    是否使用它找到的第一个键并忽略未来的键
  • 它是否忽略前一个键并使用找到的最后一个键
  • 它是否以某种巧妙的方式合并键的子项
这是我正在运行的命令:

$ composer validate
Key repositories is a duplicate in ./composer.json at line 16
...
composer.json如下所示:

{
  "name": "foo/bar",
  "description": "foo bar",
  "license": "Apache-2.0",
  "type": "library",
  "repositories": [
    {"type": "composer", "url": "foo"},
    {"packagist.org": false}
  ],

  "repositories": [
    {
      "type": "vcs",
      "url": "bar"
    }
  ],

  ...
 }
Composer使用来复制键,但它使用
json\u decode
来解码json

json\u decode
使用它为键找到的最后一个值:

>>> $json = '{"a":1,"a":10,"a":100}';
=> "{"a":1,"a":10,"a":100}"
>>> $decoded = json_decode($json)
=> {#3260
     +"a": 100,
   }
>>> $decoded->a
=> 100