In PHP wird die Funktion setType () verwendet, um Variablen in bestimmte Datentypen zu konvertieren. Es ändert nicht nur den Typ der Variablen, sondern verändert auch die Variable selbst. Dieser Artikel konzentriert sich auf die spezifische Leistung von setType () beim Konvertieren von Variablen in BOOL -Werte und zu beachten.
Die grundlegende Verwendung von setType () lautet wie folgt:
settype(mixed &$var, string $type): bool
$ var ist eine Variable des Typs, die konvertiert werden muss, und die Funktion ändert diese Variable direkt.
$ type ist der Zieltyp wie "bool" , "int" , "String" , usw.
Der Rückgabewert ist ein boolescher Wert, der angibt, ob die Konvertierung erfolgreich ist.
Wenn setType () eine Variable in einen booleschen Wert umwandelt, stimmen die Conversion-Regeln mit den integrierten Booleschen Conversion-Regeln von PHP überein:
"Falsch" Wert wird in False konvertiert , einschließlich:
Boolescher Wert falsch
Ganzzahlwert 0
Schwimmender Punktwert 0,0
Leere Zeichenfolge "" und Zeichenfolge "0"
Leeres Array []
NULL
Alle anderen Werte werden in true konvertiert
Beispielcode:
$values = [0, 1, -1, "", "0", "hello", [], [1], null, false, true];
foreach ($values as $val) {
settype($val, "bool");
var_dump($val);
}
Ausgangsergebnis:
bool(false)
bool(true)
bool(true)
bool(false)
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(false)
bool(true)
setType () ändert direkt die in übergebene Variable. Beachten Sie, dass Sie zuerst die Variable kopieren sollten, wenn Sie den ursprünglichen Wert beibehalten möchten.
$original = "0";
$copy = $original;
settype($copy, "bool");
var_dump($original); // string(1) "0"
var_dump($copy); // bool(false)
Wenn das Objekt oder die Ressource übergeben wird, wird die normale Umwandlung von PHP auch bei der Konvertierung in einen Booleschen befolgt:
Ressourcen und Objekte werden im Allgemeinen in true konvertiert, es sei denn, sie handeln null oder leere Objekte.
Beachten Sie , dass setType () das Objekt nicht direkt in einen Booleschen umwandeln kann und das Ergebnis möglicherweise nicht wie erwartet ist.
Obwohl SetType () in den meisten Fällen erfolgreich ist, gibt einige nicht unterstützte Typkonvertierungen falsch zurück.
$obj = new stdClass();
$result = settype($obj, "bool"); // zurückkehren false,Konvertieren nicht in der Lage
var_dump($result);
Merkmale | veranschaulichen |
---|---|
Ändern Sie direkt den Änderungsbetrag | SetType () ändert die in übergebene Variable selbst in |
Konvertieren Sie die Booleschen Werte gemäß PHP -Regeln | Nur spezifische Werte (z. B. 0, leere Zeichenfolge, Null usw.) werden falsch , und die anderen sind wahr |
Komplexe Objekte können nicht konvertiert werden | Das Objekt kann nicht direkt in einen Booleschen konvertiert werden, die Konvertierung fällt fehl und gibt falsch zurück |
Kehren Sie zum erfolgreichen Conversion -Status zurück | Gibt einen Booleschen Wert zurück, um anzugeben, ob die Konvertierung erfolgreich ist |
Das Verständnis dieser Verhaltensweisen und Einschränkungen kann Ihnen dabei helfen, die Variablentypen und die Programmlogik genauer zu steuern, wenn Sie Booleane mithilfe von setType () konvertieren.