Integer-Variablen in PHP überprüfen: Fallstricke vermeiden
In PHP kann die Überprüfung, ob eine Variable einen ganzzahligen Wert enthält, entscheidend für die Gewährleistung der Datenintegrität sein während der Entwicklung. Die alleinige Verwendung der Funktion is_int() führt jedoch möglicherweise nicht immer zu genauen Ergebnissen.
Ein häufiges Missverständnis rührt von der Verwendung von is_int() mit Zeichenfolgen her, die numerische Zeichen enthalten. Während is_int() für Zeichenfolgen wie „1“ „true“ zurückgeben würde, erkennt es keine nicht ganzzahligen Zeichenfolgen wie „asdf“, was zu der fälschlichen Annahme führt, dass es sich um Ganzzahlen handelt.
Alternative Ansätze zur Überprüfung Ganzzahlen
Um zuverlässig nach Ganzzahlen in PHP zu suchen, berücksichtigen Sie die folgenden Optionen:
FILTER_VALIDATE_INT
Die Funktion filter_var() mit FILTER_VALIDATE_INT Filter bietet eine robuste Methode zur Überprüfung von Ganzzahlen. Es gibt „false“ für nicht ganzzahlige Werte zurück, einschließlich Zeichenfolgen wie „42“ und „a42“.
if (filter_var($variable, FILTER_VALIDATE_INT) === false) { // Variable is not an integer. }
Umwandlungsvergleich
Durch Umwandlung einer Variablen in eine Ganzzahl Wenn Sie ihn dann mit dem Originalwert vergleichen, können Sie Nicht-Ganzzahlen erkennen. Wenn sich die stringifizierten Versionen unterscheiden, deutet dies auf einen nicht ganzzahligen Wert hin.
if (strval($variable) !== strval(intval($variable))) { // Variable is not an integer. }
Typprüfung mit ctype_digit
Die Funktion ctype_digit() prüft, ob ein String nur enthält Ziffern (0-9). Es kann für positive ganze Zahlen und Null verwendet werden. Negative Ganzzahlen oder als Zeichenfolgen gespeicherte Ganzzahlen werden jedoch nicht unterstützt.
if (!ctype_digit(strval($variable))) { // Variable is not an integer (positive or zero). }
Regular Expression Matching
Reguläre Ausdrücke bieten eine flexible Möglichkeit, nach Ganzzahlmustern zu suchen. Ein regulärer Ausdruck wie ^-?d $ entspricht sowohl positiven als auch negativen Ganzzahlen.
if (!preg_match('/^-?\d+$/', $variable)) { // Variable is not an integer. }
Mit diesen alternativen Methoden können Sie genau bestimmen, ob eine Variable in PHP einem ganzzahligen Wert entspricht, und so die Integrität Ihres sicherstellen Daten und die Zuverlässigkeit Ihres Codes.
Das obige ist der detaillierte Inhalt vonSo überprüfen Sie Integer-Variablen in PHP zuverlässig: Fallstricke überwinden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!