Wenn Sie wirklich wissen möchten, ob eine Zeichenfolge eine gültige Darstellung eines echten PHP-Integer-Typs ist ...
in_array($string, array_map('strval', range(PHP_INT_MIN, PHP_INT_MAX)), true)
Dies kann jedoch nicht ausgeführt werden, da der Satz zu groß ist (passt in diesem Fall nicht in den Speicher, wenn Sie stattdessen eine Schleife ausführen, dauert es zu viele CPU-Zyklen).
Sie können möglicherweise eine binäre Suche mit Zeichenfolgenvergleich durchführen, es gibt jedoch bessere Möglichkeiten.
Das einfachste Wesen:
strlen($string) <= max(strlen((string)PHP_INT_MIN), strlen((string)PHP_INT_MAX)) && $string === (string)(int)$string
Es gibt einige andere ungewöhnliche Herangehensweisen, wie zum Beispiel:
is_int(array_keys([$string => null])[0])
Sie können auch einen Zeichenfolgenvergleich durchführen, müssen jedoch noch Dinge wie ctype_digit ausführen, überprüfen, ob die Länge angemessen ist (verschwenden Sie keine CPU, bevor Sie Dinge wie ctype_digit ausführen) und mit negativen Zahlen umständlich umgehen.
Beachten Sie, dass filter_var nicht korrekt behauptet, dass eine Zeichenfolge wirklich die Darstellung einer PHP-Ganzzahl ist. Dies ermöglicht ein führendes + und ein umgebendes Leerzeichen.
Intern verwendet PHP die Funktion "_zend_handle_numeric_str" für einen strengen Vergleich, macht dies jedoch nirgendwo direkt verfügbar, daher der Trick mit den Array-Schlüsseln (mit dem eine Zeichenfolge konvertiert wird, die eine PHP-Ganzzahl in eine PHP-Ganzzahl darstellt).
Wenn Sie eine binäre sichere Konvertierung von und nach PHP wünschen, ist dies der richtige Ansatz.
Möglicherweise möchte das nicht jeder, und es kann sich um die Verarbeitung von Benutzereingaben handeln. filter_var ist dafür nicht schlecht und wird in den meisten Fällen für PHP-Neulinge ziemlich sicher sein.
Eine Längenprüfung, ctype_digit und dann eine Prüfung des konvertierten Werts, der sich in einem Bereich befindet, ist auch für Benutzereingaben ziemlich solide. Komplexere Schemata möchten möglicherweise Trimmen oder Regex.
Das Problem bei vielen Antworten hier in dieser Hinsicht ist, dass die Frage zwar vage ist, die Antworten aber nicht sein sollten. Wenn Sie eine Lösung vorschlagen, sollten Sie in der Lage sein, genau zu erklären, was erwartet wird und was nicht. Ohne das ist nicht abzusehen, ob eine Antwort mit einer Frage übereinstimmt oder sicher ist. Das PHP-Handbuch hilft nicht immer, da es nicht alle Einschränkungen für jede der relevanten Methoden erklärt, die es bereitstellt. Dinge wie ctype_digit und is_int sind sehr zuverlässig und leicht zu bearbeiten, aber die Besonderheiten von is_numeric, filter_var und Jonglieren (+ $ var) oder Casting (intval / floatval) sind schlecht dokumentiert.
Dies ist PHP Fudge für Sie. Es gibt eine Vielzahl von Schemata zum Interpretieren von Zeichenfolgen als Ganzzahlen mit Inkonsistenzen. Die strengste Methode zum Überprüfen einer Ganzzahlzeichenfolge ist für den Benutzer nicht direkt verfügbar.