In PHP können Sie so etwas wie ein Objekt typisieren. (Objekt) oder Sie können Settype ($ var, "Objekt") verwenden - aber meine Frage ist, was ist der Unterschied zwischen den beiden?
Welches ist effizienter / besser zu nutzen? Im Moment finde ich using (object) erledigt den Job, frage mich aber, warum es auch eine settype-Funktion gibt.
Antworten:
17 für die Antwort № 1Durch das Casting wird geändert, wie die Variable im aktuellen Kontext behandelt wird, durch das Settype wird sie dauerhaft geändert.
$value = "100"; //Value is a string
echo 5 + (int)$value; //Value is treated like an integer for this line
settype($value,"int"); //Value is now an integer
Grundsätzlich ist Settype eine Abkürzung für:
$value = (type)$value;
4 für die Antwort № 2
settype()
Ändert die tatsächliche Variable, die übergeben wurde, das Casting in Klammern nicht.
Wenn du benutzt settype
auf $var
Wenn Sie es in eine Ganzzahl ändern, wird der Dezimalteil dauerhaft verloren gehen:
$var = 1.2;
settype($var, "integer");
echo $var; // prints 1, because $var is now an integer, not a float
Wenn Sie nur eine Umwandlung durchführen, bleibt die ursprüngliche Variable unverändert.
$var = 1.2;
$var2 = (integer) $var;
echo $var; // prints 1.2, because $var didn"t change type and is still a float
echo $var2; // prints 1