Ich möchte nur eine Variable zuweisen, die noch nicht zugewiesen wurde. Was ist die PHP-Methode, um Folgendes zu tun?
%Vor%Ich habe die Standardoperatoren und die is_null Funktion, aber es scheint keine einfache Möglichkeit zu sein, die obige Operation auszuführen.
isset()
ist der übliche Weg, dies zu tun:
Hinweis: Sie können null
einer Variablen zuweisen und sie wird zugewiesen. Dies führt zu unterschiedlichen Ergebnissen mit isset()
und is_null()
, also müssen Sie es sein klar, was Sie mit "nicht zugewiesen" meinen. Siehe Null vssetset () . Dies ist auch ein Fall, in dem Sie vorsichtig sein müssen, wenn Sie eine automatische Typkonvertierung durchführen, dh die !=/==
oder ===/!==
abhängig vom gewünschten Ergebnis verwenden.
Sie können auch eine boolesche Abkürzung dafür verwenden (was der Operator Perl ||=
ist). Ab PHP 5.2.x gibt es keinen Operator wie Sie sprechen. In Perl:
entspricht:
%Vor%Sie können die zweite Form in PHP machen, aber PHP hat einige funky Regeln für Typ Jonglieren . Siehe In boolean konvertieren :
Bei der Umwandlung in boolean wird die Folgende Werte gelten als FALSE:
- die boolean
FALSE
selbst- die ganze Zahl 0 (null)
- die float 0.0 (null)
- die leere Zeichenfolge und die String "0"
- ein Array mit null Elementen
- ein Objekt mit Null-Variablen (nur PHP 4)
- der spezielle Typ
NULL
(einschließlich nicht gesetzter Variablen)- SimpleXML Objekte, die aus leeren Tags erstellt wurden
Jeder andere Wert wird als TRUE (einschließlich einer Ressource) betrachtet.
Also nachher:
%Vor%$ a wäre gleich 5. Ebenso:
%Vor%Sie müssen auf diese Dinge aufpassen.
Wie wäre es mit ein paar verschachtelten ternären Operatoren?
Für mich ist es der einfachste Weg, mit Ihrem Problem umzugehen. Und da Sie verschachtelte ternäre Operatoren verwenden können, sollten Sie in der Lage sein, bei Bedarf weitere Überprüfungen hinzuzufügen.
%Vor%Es ist fast die gleiche Menge Code und es sollte funktionieren .. es sei denn, ich habe dich missverstanden. Wenn das der Fall ist, tut es mir leid.
Im Vergleich mit dem ursprünglichen Code, den Sie als Beispiel angegeben haben, ist die Länge fast gleich:
%Vor%Verschachtelte ternäre Operatoren können ein wenig verwirrend sein, also haben Sie es hier mit Kommentaren:
%Vor%Ich habe es noch nicht ausprobiert, aber wollte mit PECL Operator spielen Alter.
Tags und Links php