Gibt es eine bessere PHP-Methode, um den Standardwert per Schlüssel aus dem Array (Wörterbuch) zu erhalten?
In pythondie man machen kann:
foo = {}
assert foo.get('bar', 'baz') == 'baz'
In PHP man gehen kann für ein trinary opeartor in:
$foo = array();
assert( (isset($foo['bar'])) ? $foo['bar'] : 'baz' == 'baz');
Ich bin auf der Suche für eine golf-version. Kann ich es kürzer/besser in PHP?
InformationsquelleAutor der Frage Yauhen Yakimovich | 2011-07-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich kam gerade mit diesem kleinen Helfer-Funktion:
Nicht nur, dass diese Arbeit für Wörterbücher, aber für alle Arten von Variablen:
Vorbei eine vorher nicht definierte variable per Referenz führt nicht dazu, dass ein
NOTICE
Fehler. Stattdessen vorbei$var
durch Referenz, definieren Sie es und legen Sie es aufnull
. Der default-Wert wird auch zurückgegeben, wenn die übergebene variable istnull
. Beachten Sie auch die implizit erzeugten array in den spam - /Eier-Beispiel:Beachten Sie, dass, obwohl
$var
wird durch Verweis übergeben, das Ergebnisget($var)
wird eine Kopie der$var
nicht eine Referenz. Ich hoffe, das hilft!InformationsquelleAutor der Antwort stepmuel
Zeit vergeht und PHP entwickelt. PHP7 unterstützt jetzt Null coalescing-operator:
InformationsquelleAutor der Antwort Ivan Yarych
verwenden Sie Fehler-Kontroll-operator @ mit PHP 5.3 shortcut version von ternären operator
$bar = @$foo['bar'] ?: 'defaultvalue';
InformationsquelleAutor der Antwort romanlv
PHP 5.3 hat eine shortcut-version des ternären operator:
das ist im Grunde
Sonst, Nein, es gibt keine kürzere Methode.
InformationsquelleAutor der Antwort Marc B
Eine "etwas" hacky Weg, es zu tun:
http://codepad.viper-7.com/flXHCH
Natürlich ist dies nicht wirklich die nette Art, es zu tun. Aber es ist nützlich in anderen Situationen. E. g. Ich oft erklären shortcuts to GET und POST-Variablen so:
PS: Man könnte nennen dies die "built-in
==$_=&
speziellen Vergleichsoperator":PPS: Nun könnte man natürlich nur verwenden,
aber das ist noch schlimmer als die
==$_=&
Betreiber. Menschen wissen nicht, wie die Fehler-Unterdrückung Betreiber viel, wissen Sie.InformationsquelleAutor der Antwort NikiC
Ich finde es nützlich, eine Funktion zu erzeugen, zum Beispiel so:
Und verwenden Sie es wie diese:
Den default-Wert in diesem Fall ist
null
aber Sie können es zu was auch immer Sie brauchen.Ich hoffe, es ist nützlich.
InformationsquelleAutor der Antwort rbento
Wenn Sie aufzählen die default-Werte durch den Schlüssel in einem array, kann es auf diese Weise getan:
Sind die Ergebnisse in:
Den Schlüssel/Wert-Paare, die Sie aufzählen Standardeinstellungen für die, die besser den code-golf wird.
InformationsquelleAutor der Antwort Rusty Fausak