Bei der Entwicklung von PHP -Projekten stoßen wir häufig auf Szenarien, in denen wir Standardkonfigurationselemente für mehrere Module, Felder und Funktionen festlegen müssen. Die traditionelle Methode kann manuelle Zuordnung sein, die für die Wartung langwierig und ungünstig ist. Glücklicherweise bietet PHP eine sehr praktische Funktion - Array_Fill () , die uns helfen kann.
Array_Fill (int $ start_index, int $ count, gemischter $ value): Array
Diese Funktion gibt ein mit dem angegebener Wert gefüllter Array zurück.
$config = array_fill(0, 5, 'default');
print_r($config);
Ausgabe:
Array
(
[0] => default
[1] => default
[2] => default
[3] => default
[4] => default
)
Dies bedeutet, dass wir ein Array mit fünf "Standard" -Werten in einer Codezeile generieren können, was sehr effizient ist.
Angenommen, wir haben ein System mit mehreren Modulen. Jedes Modul muss zwei Konfigurationselemente haben: aktiviert und Endpunkt , wobei die Standardwerte falsch bzw. leer sind. Die Initialisierung unter Verwendung herkömmlicher Methoden kann wie folgt sein:
$config = [
'user' => ['enabled' => false, 'endpoint' => ''],
'blog' => ['enabled' => false, 'endpoint' => ''],
'shop' => ['enabled' => false, 'endpoint' => ''],
];
Es sieht gut aus, aber sobald die Anzahl der Module zunimmt, wird dieser Ansatz weniger elegant.
Wir können die Standardstruktur schnell mit Array_Fill_Keys () mit Array_Fill () generieren:
$modules = ['user', 'blog', 'shop', 'forum', 'gallery'];
$default = [
'enabled' => false,
'endpoint' => '',
];
// verwenden array_fill_keys Initialisieren Sie die Konfigurationsstruktur
$config = array_fill_keys($modules, $default);
print_r($config);
Ausgabe:
Array
(
[user] => Array
(
[enabled] =>
[endpoint] =>
)
[blog] => Array
(
[enabled] =>
[endpoint] =>
)
...
)
Der Vorteil des Schreibens ist, dass die Struktur klar und einfach in Chargen zu verwalten ist. Wenn sich der Modulname ändert, müssen Sie nur das $ Modules -Array ändern.
Wenn für jedes Ihrer Module eine Standard -API -Adresse erforderlich ist und der Domänenname m66.net als Grundlage verwendet wird, können Sie sie wie folgt verarbeiten:
$modules = ['user', 'blog', 'shop'];
$config = [];
foreach ($modules as $module) {
$config[$module] = [
'enabled' => false,
'endpoint' => "https://api.m66.net/{$module}"
];
}
print_r($config);
Ausgabe:
Array
(
[user] => Array
(
[enabled] =>
[endpoint] => https://api.m66.net/user
)
[blog] => Array
(
[enabled] =>
[endpoint] => https://api.m66.net/blog
)
...
)
Array_Fill () und Array_Fill_Keys () sind leistungsstarke Tools, um schnell strukturierte Arrays in PHP zu erzeugen, und eignen sich besonders für die Initialisierung von Konfigurationselementen mit einem einheitlichen Format. Indem wir Modulnamen und Standardwerte geschickt kombinieren, können wir die Wartbarkeit und Klarheit des Codes erheblich verbessern und die Duplikation von Arbeiten verringern.
Wenn Sie das nächste Mal die Konfigurationsinitialisierung schreiben, vergessen Sie diese effiziente Tool -Kombination nicht!