高い並行性PHPプロジェクトでは、キャッシュされたデータ構造の初期化効率は、しばしばシステムの応答速度とリソース利用に直接影響します。特に、事前定義された多数のインデックスを持つ配列を扱う場合、値を手動で割り当てる場合、コードが長くなるだけでなく、エラーも発生しやすくなります。この時点で、 array_fill()関数は非常に実用的なツールです。
array_fill()は、指定された長さの配列を生成し、すべての要素を同じ値で埋めるPHPの組み込み関数です。その構文は次のとおりです。
array_fill(int $start_index, int $count, mixed $value): array
$ start_index :配列の開始インデックス(負の数になる可能性があります)
$ count :生成された要素の数
$値:すべての要素のデフォルト値
システム内の100人のユーザーの初期キャッシュデータ構造を準備する必要があり、各ユーザーの初期状態は['logged_in' => false、 'last_activity' => null]であるとします。従来の方法で書き込むことは非常に冗長であり、 array_fill()を使用すると、非常に簡素化できます。
$defaultCache = ['logged_in' => false, 'last_activity' => null];
$userCache = array_fill(0, 100, $defaultCache);
print_r($userCache);
この例では、同じデフォルト構造を使用して、100人のユーザー向けにキャッシュアイテムをすばやく生成しました。
実際のビジネスでは、ユーザーIDと組み合わせてキャッシュアレイを動的に生成する必要がある場合があります。現時点では、 array_fill_keys()で使用できます。
$userIds = range(101, 200); // ユーザーをシミュレートしますIDリスト
$defaultCache = ['logged_in' => false, 'last_activity' => null];
$userCache = array_fill_keys($userIds, $defaultCache);
生成された$ usercacheは、ユーザーIDでキー化され、統合されたキャッシュ構造に初期化されます。
クローラーシステムを構築しており、URLのバッチ用にクロール状態を初期化する予定であるとします。 array_fill()でステータスを事前に設定するのは非常に便利です。
$urls = [
'https://m66.net/page1',
'https://m66.net/page2',
'https://m66.net/page3',
];
$defaultStatus = ['fetched' => false, 'status_code' => null];
$urlStatusCache = array_fill_keys($urls, $defaultStatus);
このように、各URLには独自の最初のクロール状態があり、コードは簡潔で保守可能です。
array_fill() (またはarray_fill_keys() )を使用すると、特に統一された構造とデフォルト値が必要なシナリオで、データ構造の初期化の効率を大幅に改善できます。
コードボリュームを保存し、繰り返しの作業を減らします
メンテナンスと読み取りが簡単です
省略や初期化エラーは避けてください
このタイプの配列関数をマスターすることは、効率的なPHPコードを作成するためのキーの1つです!