Aktueller Standort: Startseite> Neueste Artikel> Kombinieren Sie ternäre Operatoren zur Verbesserung der Lesbarkeit von Array_filter ()

Kombinieren Sie ternäre Operatoren zur Verbesserung der Lesbarkeit von Array_filter ()

M66 2025-06-03

In PHP ist Array_filter () eine sehr häufige Funktion, die Elemente eines Arrays basierend auf einer bestimmten Rückruffunktion filtert. Es generiert ein neues Array, indem Elemente entfernt werden, die die Kriterien nicht erfüllen. Obwohl Array_Filter () ein prägnantes Tool ist, kann die Lesbarkeit des Codes ohne angemessene Verwendung reduziert werden. Um die Lesbarkeit des Codes zu verbessern, können wir ternäre Operatoren verwenden, um das Schreiben von Rückruffunktionen zu vereinfachen.

1. Grundnutzung der Funktion array_filter ()

Die Funktion array_filter () akzeptiert zwei Parameter: ein Array und eine Rückruffunktion. Es wird über jedes Element im Array iteriert, das Element beibehält, dessen Rückgabewert der Rückruffunktion wahr ist, und das Element, dessen Rückgabewert falsch ist, wird herausgefiltert.

 <?php
$numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9];

$filteredNumbers = array_filter($numbers, function($number) {
    return $number % 2 === 0;  // Nur sogar Zahlen bleiben beibehalten
});

print_r($filteredNumbers);
?>

Das Ausgangsergebnis ist:

 Array
(
    [1] => 2
    [3] => 4
    [5] => 6
    [7] => 8
)

2. Optimieren Sie die Rückruffunktionen mit ternären Operatoren

Der ternäre Operator ( ? :) ist ein prägnanter bedingter Ausdruck, der es uns ermöglicht, bedingte Urteile innerhalb einer Linie zu fällen. Wir können ternäre Operatoren verwenden, um die Logik der Rückruffunktionen in Array_Filter () zu vereinfachen, um sie prägnanter und einfacher zu lesen. Insbesondere wenn ein Wert einfach ist, um einfach zu sein, kann der ternäre Operator den Code kompakter machen.

Angenommen, wir möchten ein Array filtern und alle Elemente größer als 5 halten. Wir können diese Logik über den ternären Operator implementieren:

 <?php
$numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9];

$filteredNumbers = array_filter($numbers, function($number) {
    return $number > 5 ? true : false;  // Wenn größer als5,zurückkehren true
});

print_r($filteredNumbers);
?>

Das Ausgangsergebnis ist:

 Array
(
    [5] => 6
    [6] => 7
    [7] => 8
    [8] => 9
)

In diesem Beispiel der ternäre Operator ? Richtig: Falsch wird verwendet, um festzustellen, ob die Zahl der Zahl> 5 wahr ist. Wenn es wahr ist, wird es wahr zurückgegeben, sonst gibt es false zurück. Obwohl Rückgabe $ $> 5; Kann auch den gleichen Effekt erzielen, über den ternären Operator können wir den Code präzise halten, wenn komplexere Urteile benötigt werden.

3. Praktische Anwendung: Verwenden Sie ternäre Operatoren, um komplexere Bedingungen zu bewältigen

Angenommen, wir müssen ein Array mit URLs filtern, und nur URLs, beginnend mit http://m66.net , werden beibehalten. In diesem Fall können wir ternäre Operatoren verwenden, um die Urteilslogik zu vereinfachen.

 <?php
$urls = [
    'http://m66.net/page1',
    'http://example.com/page2',
    'http://m66.net/page3',
    'http://anotherdomain.com/page4',
];

$filteredUrls = array_filter($urls, function($url) {
    return strpos($url, 'http://m66.net') === 0 ? true : false;  // Nur behalten m66.net Der Anfang URL
});

print_r($filteredUrls);
?>

Das Ausgangsergebnis ist:

 Array
(
    [0] => http://m66.net/page1
    [2] => http://m66.net/page3
)

In diesem Beispiel wird Strpos ($ url, 'http://m66.net') === 0 verwendet, um festzustellen, ob die URL mit http://m66.net beginnt. Der ternäre Operator stellt sicher, dass wir diese Logik genau bewältigen können.

4. Zusammenfassung

Bei der Verwendung von Array_filter () kann die Lesbarkeit und Einfachheit der Code durch Einführung ternärer Operatoren verbessert werden, insbesondere wenn das Bedingungsurteil in der Rückruffunktion einfach ist, können ternäre Operatoren uns helfen, langweilig, wenn auch Angaben zu vermeiden. Gleichzeitig ermöglicht es dem Code auch, eine kurze Struktur beizubehalten, wenn komplexere Urteile fällen.