Mit Kurzschluss zu bekommen erste nicht-null-Variablen
Was ist das äquivalent zu der folgenden (in JS style) in PHP:
echo $post['story'] || $post['message'] || $post['name'];
Also, wenn Geschichte gibt es dann post, dass; oder wenn eine Nachricht vorhanden post, usw...
- was ist der Punkt bei diesem Betreiber? Wissen Sie nicht, wie bestimmte variable, die du ausgeben willst?
- Für nur 2 Argumente, die Sie verwenden können:
echo isset($_POST['story']) ? $_POST['story'] : $_POST['message'];
schließlich versuchen, Sie zu verschachteln. - Es basiert auf der facebook-api-stream; nur ein/zwei von drei vorhanden per post.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wäre es (PHP 5.3+):
Und für PHP 7:
Es ist ein one-liner, aber es ist nicht gerade kürzer:
array_filter
würde Sie wieder alle nicht-null-Einträge aus der Liste der alternativen. Und- current
wird nur der erste Eintrag aus der gefilterten Liste.current()
wickelt es.Da beide
or
und||
nicht wieder einer Ihrer Operanden ist nicht möglich.Könnten Sie schreiben eine einfache Funktion, wenn für Sie:
Gebäude auf dem Adam ' s Antwort, man könne die Fehler-Kontroll-operator zu helfen, unterdrücken der Fehler generiert, wenn die Variablen nicht gesetzt.
http://php.net/manual/en/language.operators.errorcontrol.php
Als PHP-7, die Sie verwenden können, die null coalescing-operator:
Können Sie versuchen, es
Dass würde die syntax von echo-1, wenn einer der beiden gesetzt ist, und nicht falsch, und 0, wenn nicht.
Hier ist eine Zeile Weg, dies zu tun, das funktioniert und kann verlängert werden für eine beliebige Anzahl von Optionen:
... ziemlich hässlich, obwohl. Edit: Mario ist besser als meine, da es im Einklang mit Ihrer gewählten beliebiger Reihenfolge wie diese hat, aber im Gegensatz zu diesem, ist es nicht immer hässlichere, die mit jeder neuen option, die Sie hinzufügen.
Weil Abwechslung ist die Würze des Lebens: