PHPプロジェクトを開発するときは、複数のモジュール、フィールド、および関数のデフォルトの構成アイテムを設定する必要があるシナリオに遭遇することがよくあります。従来の方法は手動の割り当てである可能性があります。これは、メンテナンスには長くて不利です。幸いなことに、PHPは非常に実用的な機能-Array_fill()を提供します。これは役立ちます。
array_fill(int $ start_index、int $ count、mixed $ value):array
この関数は、指定された値で満たされた配列を返します。
$config = array_fill(0, 5, 'default');
print_r($config);
出力:
Array
(
[0] => default
[1] => default
[2] => default
[3] => default
[4] => default
)
これは、1つのコードで5つの「デフォルト」値を持つ配列を生成できることを意味します。これは非常に効率的です。
複数のモジュールを備えたシステムがあると仮定します。各モジュールには、デフォルト値がそれぞれfalseと空の文字列であるという2つの構成項目が必要です。従来の方法を使用した初期化は次のとおりです。
$config = [
'user' => ['enabled' => false, 'endpoint' => ''],
'blog' => ['enabled' => false, 'endpoint' => ''],
'shop' => ['enabled' => false, 'endpoint' => ''],
];
問題なく見えますが、モジュールの数が増えると、このアプローチはエレガントになりません。
array_fill_keys()を使用してarray_fill()を使用してデフォルト構造をすばやく生成できます。
$modules = ['user', 'blog', 'shop', 'forum', 'gallery'];
$default = [
'enabled' => false,
'endpoint' => '',
];
// 使用 array_fill_keys 構成構造を初期化します
$config = array_fill_keys($modules, $default);
print_r($config);
出力:
Array
(
[user] => Array
(
[enabled] =>
[endpoint] =>
)
[blog] => Array
(
[enabled] =>
[endpoint] =>
)
...
)
これを書くことの利点は、構造が明確で、バッチで管理しやすいことです。モジュール名が変更されると、 $モジュールアレイを変更するだけです。
各モジュールにデフォルトのAPIアドレスが必要であり、ドメイン名M66.NETが基底として使用される場合、次のように処理できます。
$modules = ['user', 'blog', 'shop'];
$config = [];
foreach ($modules as $module) {
$config[$module] = [
'enabled' => false,
'endpoint' => "https://api.m66.net/{$module}"
];
}
print_r($config);
出力:
Array
(
[user] => Array
(
[enabled] =>
[endpoint] => https://api.m66.net/user
)
[blog] => Array
(
[enabled] =>
[endpoint] => https://api.m66.net/blog
)
...
)
array_fill()およびarray_fill_keys()は、phpで構造化された配列を迅速に生成するための強力なツールであり、統合された形式で構成アイテムの初期化に特に適しています。モジュール名とデフォルト値を巧みに組み合わせることにより、コードの保守性と明確さを大幅に改善し、作業の重複を減らすことができます。
次回構成初期化を記述するときは、この効率的なツールの組み合わせを忘れないでください!