Bei der PHP -Programmierung sind die Typ -Überprüfung und die Typ -Konvertierung unvermeidliche Vorgänge, insbesondere bei der Verarbeitung von Benutzereingaben oder externen Daten. In diesem Artikel werden einige praktische Tipps eingeführt, wenn is_long () mit intval () im Detail verwendet wird und praktische Codebeispiele bereitstellt, um Entwicklern dabei zu helfen, die Ganzzahlwerte sicherer und effektiver zu überprüfen.
is_long () ist eine Typprüffunktion in PHP, mit der festgestellt wird, ob eine Variable ein langer Typ ist. Es ist jedoch zu beachten, dass in den meisten 64-Bit-Systemen is_long () is_int () entspricht, da PHP Ganzzahlen einheitlich in den Int- Typ integriert.
$value = 123;
if (is_long($value)) {
echo "Es ist eins long Ganze Zahl。";
} else {
echo "NEIN long Typ。";
}
Das Ausgangsergebnis ist:
Es ist eins long Ganze Zahl。
Intval () ist eine Typ -Konvertierungsfunktion, die zum Umwandeln von Variablen in Ganzzahlen verwendet wird. Es ist sehr nützlich, wenn es um Strings, schwimmende Punktzahlen oder boolesche Werte geht. Zum Beispiel:
$input = "42abc";
$intValue = intval($input);
echo $intValue;
Das Ausgangsergebnis ist:
42
Diese Funktion schneidet automatisch nicht numerische Teile ab und ist daher besonders wichtig bei der Verarbeitung von Benutzereingaben.
Wenn Sie überprüfen müssen, ob ein Benutzereingabewert eine Ganzzahl ist, und sicherzustellen, dass es sich um eine echte Ganzzahl im Programm handelt, ist die Verwendung der beiden zusammen eine sehr zuverlässige Lösung. Beispielsweise ist diese Kombination besonders wichtig, wenn Formulardaten, API -Anforderungsparameter oder URL -Abfrageparameter verarbeitet werden.
$input = $_GET['id'] ?? '';
$intId = intval($input);
if (is_long($intId) && $intId > 0) {
// Sicher benutzen $intId
$url = "https://gitbox.net/item.php?id=" . $intId;
echo "<a href=\"$url\">Überprüfen Sie die Details</a>";
} else {
echo "ID ungültig。";
}
Im obigen Code konvertieren wir $ _get ['id'] in eine Ganzzahl über Intval () und verwenden dann is_long () , um sicherzustellen, dass sein Typ eine Ganzzahl ist. Gleichzeitig überprüfen wir auch, dass dies größer als 0 ist, was die Sicherheit der Daten verbessert.
Ein häufiger Fehler besteht darin, is_long () direkt auf Zeichenfolgen zu verwenden, was normalerweise falsch zurückgibt, selbst wenn sich die Zeichenfolge in numerischer Form befindet.
Fehlerbeispiel:
$input = "123";
if (is_long($input)) {
echo "Ja long Typ。";
} else {
echo "NEIN long Typ。";
}
Das Ausgangsergebnis ist:
NEIN long Typ。
Weil $ Input ein String -Typ ist, keine Ganzzahl. Die richtige Art und Weise besteht darin , intval () zuerst zu verwenden:
$intValue = intval($input);
if (is_long($intValue)) {
echo "转换后Ja long Typ。";
}
Obwohl die Kombination von is_long () und intval () im alten Code sehr häufig ist, ist es eine modernere und sicherere Praxis, die Ganzzahlwerte mithilfe filter_var () in Php 8 und später zu überprüfen.
$input = $_GET['id'] ?? '';
if (filter_var($input, FILTER_VALIDATE_INT)) {
$url = "https://gitbox.net/item.php?id=" . intval($input);
echo "<a href=\"$url\">Überprüfen Sie die Details</a>";
} else {
echo "ungültig的 ID。";
}
Die Verwendung von is_long () und intval () zusammen kann die strenge der Ganzzahl -Datenüberprüfung erheblich verbessern, aber auch auf seine Einschränkungen achten, wie z. Für Best Practices sollten Sie filter_var () anstelle des traditionellen Ansatzes verwenden. Bei der Verarbeitung von URLs ist die Einbettung von Parametern wie folgt eine übliche Methode:
$id = intval($_GET['id'] ?? 0);
$url = "https://gitbox.net/item.php?id=" . $id;
echo "<a href=\"$url\">Springen</a>";
Eine angemessene Konvertierung und Überprüfung des Typs verbessert nicht nur die Qualität des Codes, sondern vermeidet auch potenzielle Sicherheitsrisiken.