Bei der Entwicklung von PHP-basierten Webanwendungen ist häufig erforderlich, um Daten zu verarbeiten, die von Benutzern eingegeben wurden. Diese Daten können aus Formulareinführungen, URL -Parametern, Cookies usw. stammen. Da der von Benutzern eingegebene Inhalt normalerweise in Zeichenfolgen übergeben wird, müssen wir sie möglicherweise in andere Datentypen (z. B. Ganzzahlen, schwimmende Zahlen, Boolesche Werte usw.) im Programm nach verschiedenen Geschäftsanforderungen konvertieren. Zu diesem Zeitpunkt bietet die Funktion von PHP setType () eine einfache Möglichkeit, die Typumwandlung durchzuführen.
Die Funktion setType () wird verwendet, um den Typ einer Variablen zu ändern, und ändert direkt den Wert der Variablen selbst. Im Gegensatz zum Typ Casting ändert SETTYPE () den tatsächlichen Typ der Variablen und gibt einen booleschen Wert zurück, der angibt, ob das Typ -Casting erfolgreich ist.
<span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">settype</span></span><span>(</span><span><span class="hljs-keyword">mixed</span></span><span> &</span><span><span class="hljs-variable">$var</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$type</span></span><span>);
</span></span>
$ var : Die zu konvertierende Variable des Typs (die Referenz wird übergeben).
$ type : Der Zieltyp muss einer der folgenden sein: "Boolean" , "Integer" , "Double" , "String" , "Array" , "Objekt" .
Die Funktion "settyPe () gibt einen booleschen Wert zurück:
Richtig : Zeigt an, dass die Typumwandlung erfolgreich ist.
Falsch : Gibt an, dass die Typumwandlung fehlschlägt, normalerweise, wenn ein bestimmter Wert nicht in den Zieltyp konvertiert werden kann.
Die vom Benutzer eingegebenen Daten können eine Zeichenfolge in Form einer Nummer sein, die wir bei der Ausführung mathematischer Operationen in eine Ganzzahl oder eine schwimmende Nummer konvertieren müssen. Zum Beispiel gibt der Benutzer eine Zahl als Preis im Formular ein, und wir müssen sie zur Berechnung in eine Ganzzahl umwandeln.
<span><span><span class="hljs-variable">$user_input</span></span><span> = </span><span><span class="hljs-string">"150.75"</span></span><span>; </span><span><span class="hljs-comment">// Benutzereingangszeichenfolge</span></span><span>
</span><span><span class="hljs-title function_ invoke__">settype</span></span><span>(</span><span><span class="hljs-variable">$user_input</span></span><span>, </span><span><span class="hljs-string">"double"</span></span><span>); </span><span><span class="hljs-comment">// Konvertieren Sie die Zeichenfolge in die schwebende Nummer</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$user_input</span></span><span>; </span><span><span class="hljs-comment">// Ausgabe: 150.75</span></span><span>
</span></span>
Wenn die von einem Benutzer, insbesondere in einem Kontrollkästchen oder Radierkästchen übermittelten, Formulardaten verarbeitet werden, kann der Benutzer Werte wie "on" oder "1" als Zeichenfolge übermitteln, und wir müssen sie in einen booleschen Wert konvertieren.
<span><span><span class="hljs-variable">$user_input</span></span><span> = </span><span><span class="hljs-string">"on"</span></span><span>; </span><span><span class="hljs-comment">// Der vom Benutzer eingegebene Kontrollkästchen -Wert</span></span><span>
</span><span><span class="hljs-title function_ invoke__">settype</span></span><span>(</span><span><span class="hljs-variable">$user_input</span></span><span>, </span><span><span class="hljs-string">"boolean"</span></span><span>); </span><span><span class="hljs-comment">// Nach boolean konvertieren</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$user_input</span></span><span>; </span><span><span class="hljs-comment">// Ausgabe: 1 (true)</span></span><span>
</span></span>
In einigen Fällen ist die vom Benutzer eingegebenen Daten eine Zeichenfolge, die in einem bestimmten Format (z. B. von Kommas getrennte Werte) übergeben wurde, und wir müssen sie zur weiteren Verarbeitung in einen Array-Typ konvertieren.
<span><span><span class="hljs-variable">$user_input</span></span><span> = </span><span><span class="hljs-string">"apple,orange,banana"</span></span><span>; </span><span><span class="hljs-comment">// Benutzereingabe Fruchtzeichenfolge</span></span><span>
</span><span><span class="hljs-title function_ invoke__">settype</span></span><span>(</span><span><span class="hljs-variable">$user_input</span></span><span>, </span><span><span class="hljs-string">"array"</span></span><span>); </span><span><span class="hljs-comment">// Saiten in Arrays konvertieren</span></span><span>
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$user_input</span></span><span>); </span><span><span class="hljs-comment">// Ausgabe: Array ( [0] => apple [1] => orange [2] => banana )</span></span><span>
</span></span>
In einigen objektorientierten Anwendungen müssen möglicherweise Objekte in Arrays umwandeln, um die Übertragung oder Verarbeitung von Objektattributdaten zu erleichtern. Diese Aufgabe kann auch mit setType () erledigt werden.
<span><span><span class="hljs-class"><span class="hljs-keyword">class</span></span></span><span> </span><span><span class="hljs-title">User</span></span><span> {
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-variable">$name</span></span><span>;
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-variable">$age</span></span><span>;
}
</span><span><span class="hljs-variable">$user</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">User</span></span><span>();
</span><span><span class="hljs-variable">$user</span></span><span>->name = </span><span><span class="hljs-string">"John"</span></span><span>;
</span><span><span class="hljs-variable">$user</span></span><span>->age = </span><span><span class="hljs-number">30</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">settype</span></span><span>(</span><span><span class="hljs-variable">$user</span></span><span>, </span><span><span class="hljs-string">"array"</span></span><span>); </span><span><span class="hljs-comment">// Umwandeln Sie Objekte in Arrays</span></span><span>
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$user</span></span><span>); </span><span><span class="hljs-comment">// Ausgabe: Array ( [name] => John [age] => 30 )</span></span><span>
</span></span>
Obwohl die Funktion setType () Type Conversion liefert, unterscheidet sich sie etwas von Casting (z. B. (int) $ var ). setType () soll die Variable selbst direkt ändern und den booleschen Wert der Umstellung erfolgreich zurückgeben, während das Casting den Typ der ursprünglichen Variablen nicht ändert. Fälle werden normalerweise für den Cleaner -Code verwendet, während setType () für Szenarien geeignet ist, in denen es erforderlich ist, klar zu bestimmen, ob eine Typumwandlung erfolgreich ist.
Die Funktion "settyPe () verändert die ursprüngliche Variable, sodass die Referenz übergeben wird. Wenn Sie die ursprüngliche Variable nicht ändern möchten, können Sie sie vor der Konvertierung in eine neue Variable kopieren.
Wenn die Konvertierung des Zieltyps fehlschlägt, wirft SETTYPE () keinen Fehler aus, gibt jedoch FALSE zurück. Daher ist es am besten, den Rückgabewert bei der Verwendung zu überprüfen.
Bei der Verarbeitung von Benutzereingabedaten ist die Funktion setType () ein leistungsstarkes Tool, mit dem Entwickler Datentypen problemlos konvertieren können. Es ist für Szenarien verschiedener Konvertierungsarten geeignet, insbesondere bei der Verarbeitung von Daten und externen Eingaben. Durch die Verwendung von setType () können Entwickler sicherstellen, dass die richtigen Datentypen in verschiedenen Geschäftslogik verwendet werden, wodurch potenzielle Fehler oder Inkonsistenzen vermieden werden. Bei der Verwendung müssen wir auch beurteilen, ob die Typumwandlung aufgrund der tatsächlichen Situation erfolgreich ist, um die Daten weiter zu verarbeiten.