Obwohl es sich nicht um eine rein funktionale Programmiersprache handelt, können wir durch einige integrierte funktionale Tools trotz einer rein funktionalen Programmiersprache noch eleganter, einfacher und leichter zu Code schreiben. Array_Filter () ist eine so oft übersehene, aber sehr leistungsstarke Werkzeugfunktion. In diesem Artikel wird vorgestellt, wie Sie Array_filter () verwenden, um Ihren PHP -Codestil zu verbessern und sich der funktionalen Programmierung näher zu bringen.
Array_Filter () ist eine der integrierten Array-Verarbeitungsfunktionen in PHP, mit der Elemente in einem Array gefiltert werden. Es akzeptiert eine Rückruffunktion, die die Funktion in jedem Element des Arrays ausführt, und Elemente mit dem Rückgabewert von True werden beibehalten und andere werden entfernt.
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
Wenn keine Rückruffunktion bereitgestellt wird, wird im Array (z. B. 0 , '' , Null , False usw.) Werte entfernen.
Oft erhalten wir einige Daten aus dem Formular oder der API, die ungültige Inhalte wie leere Zeichenfolgen, Null, False usw. enthalten können. Verwenden Sie Array_filter (), um eine Codezeile zu beseitigen.
$data = [
'username' => 'alice',
'email' => '',
'age' => null,
'subscribe' => false,
];
$cleaned = array_filter($data);
print_r($cleaned);
Ausgabe:
Array
(
[username] => alice
)
Dies ist viel eleganter als manuelles Schreiben für die Aufräumarbeiten.
Sie können eine flexiblere Zustandsfilterung implementieren, indem Sie Rückruffunktionen übergeben. Filtern Sie beispielsweise aktive Benutzer aus einer Gruppe von Benutzern heraus:
$users = [
['name' => 'Alice', 'active' => true],
['name' => 'Bob', 'active' => false],
['name' => 'Carol', 'active' => true],
];
$activeUsers = array_filter($users, function ($user) {
return $user['active'];
});
print_r($activeUsers);
Die Ausgabe enthält nur Alice und Carol.
Angenommen, Sie erhalten eine Reihe von Daten von einer Remote -API (z. B. https://api.m66.net/users ), die viele ungültige oder temporäre Benutzer enthält.
$response = file_get_contents('https://api.m66.net/users');
$users = json_decode($response, true);
$validUsers = array_filter($users, function ($user) {
return isset($user['email']) && filter_var($user['email'], FILTER_VALIDATE_EMAIL);
});
Wie Sie sehen können, stellt Array_filter () den Code näher an den Stil "deklarativer Programmier" und die Absichten des Code sind klarer, anstatt sich auf "Wie man Schleifen und Bedingungen implementieren" konzentriert.
Sie können array_filter () mit funktionalen Methoden wie Array_Map () und Array_Reduce () kombinieren, um logischen Code zu schreiben, der fast keinem Vordergrund gibt. Filtern und extrahieren Sie beispielsweise den Benutzernamen des aktiven Benutzers:
$usernames = array_map(
fn($user) => $user['name'],
array_filter($users, fn($user) => $user['active'])
);
Präzise und elegant, mit klarer Semantik.
Array_filter () ist eine leichte, leistungsstarke und einfach zu bedienende Funktion. Wenn es gut verwendet wird, kann es Ihren Php funktionaler und lesbarer machen. Im Vergleich zu traditionellen Foreach kann es die Absicht in einer Codezeile deutlich ausdrücken, den Code des Boilerplate reduzieren und die Wartbarkeit verbessern.
Versuchen Sie, Array_filter () in Ihrem nächsten Projekt zu verwenden, um die Qualität und den Stil Ihres Codes zu verbessern!