Benutze Sicherheitsfilter auch wenn nach intval angewendet?

Ich habe einige Werte in postmeta und usermeta Tabelle zu speichern. Vor dem Speichern habe ich das bereits getan: $value = intval($value) . Ich denke, das ist genug. Aber ich sehe, einige Plugins verwenden immer noch Filter für diese Nummern. Ich möchte sicherstellen, dass ich mit intval und ohne Sicherheitsfilter intval kann.

Solutions Collecting From Web of "Benutze Sicherheitsfilter auch wenn nach intval angewendet?"

intval() verhält sich manchmal etwas kontraintuitiv, wenn der Wert führende Nullen enthält oder wenn es sich um einen mathematischen Ausdruck handelt. Das Ergebnis sollte immer sicher sein , ist aber nicht immer das, was Sie erwarten .

Ein einfaches Beispiel:

 intval( '9223372036854775808' ); 

wird diesen Wert nie zurückgeben, weil sogar das 64-Bit-System nicht mit einer so großen Anzahl umgehen kann. Sie erhalten 9223372036854775807 auf einem 64-Bit-System und 2147483647 auf 32-Bit.

Aber wenn du folgendes verwendest:

 preg_match( '~\d+~', '9223372036854775808', $matches ); 

$matches[0] gibt diese Zahl unverändert zurück.

Es hängt also von den Werten ab, die Sie erwarten.