Es gibt keine direkte Entsprechung zu pareseInt()
in PHP, weil PHP keinen NaN
Datentyp. parseInt()
wird NaN
produzieren, wenn der Wert nicht analysiert werden kann.
Darüber hinaus hat parseInt()
die Radix-Parameter, die keine der PHP-Optionen gibt.
Aber das sagte, wenn alles, was Sie tun wollen einen String in eine ganze Zahl ist zu drehen, dann gibt es mehrere Möglichkeiten:
$int = (int)$string;
$int = intval($string);
$int = settype($string,'integer');
Diese drei werden alle arbeiten in der gleichen Weise. Es kann einige Randfälle geben, bei denen sich intval()
von den anderen beiden unterscheidet, aber im Allgemeinen werden sie eine Zeichenkette in einen int verwandeln. In Abwesenheit von NaN
geben sie alle 0
(Null) aus, wenn die Zeichenfolge nicht numerisch ist und nicht analysiert werden kann. Dies sollte jedoch für die meisten DB-Sanierungszwecke ausreichen.
Wenn Sie wirklich eine NaN
bei einem Fehler möchten, ist die nächste, die Sie erhalten, null
. Sie können diese filter_var()
mit bekommen:
$value = filter_var(FALSE, FILTER_VALIDATE_INT, FILTER_NULL_ON_FAILURE);
Wenn Sie wollen einfach nur prüfen, ob die Zeichenfolge numerisch ist, die is_numeric()
Funktion kann das tun:
$bool = is_numeric($string);
Aber es gibt true zurück, für Dezimalstellen und auch für wissenschaftliche Notation, so kann für die meisten Situationen nicht perfekt sein.Eine bessere Option ist ctype_digit()
, die true zurückgibt, wenn die Zeichenfolge nur aus Ziffern zusammensetzt:
$bool = ctype_digit($string);
Wenn non e dieser Anzüge, gibt es immer die regex Option ist, preg_match()
oder preg_replace()
verwenden, aber diese sind auf jeden Fall viel des Guten für diese Art von Szenario.
Überprüfen Sie [php.net/Type Casting] (http://php.net/manual/en/language.types.type-juggling.php) – air4x
Warum nicht einfach intval verwenden? – endy