gpt4 book ai didi

php - 考虑到 toInt 返回 0 表示失败而不是 false,在 PHP 中将任何字符串数字转换为整数类型

转载 作者:行者123 更新时间:2023-12-03 22:54:50 25 4
gpt4 key购买 nike

如果给定字符串是,我如何编写一个返回 FALSE 的函数NOT A VALID NUMBER OF TYPE [PHP INT],否则返回 TRUE。

这在其他语言中很简单。

intval()、isint() 和 is_numeric() 是不够的,原因如下:

is_numeric() 是不够的,因为它匹配任何数字而不仅仅是整数,而且它接受巨大的数字作为数字,这不是整数。 intval() 是不够的,因为它为无效的 PHP 整数(如“9000000000000000”)和有效的 PHP 整数“0”或“0x0”或“0000”等返回 0。isint() 仅测试变量是否已经是 int 类型,它不处理字符串或转换为 int。

也许有一个流行的图书馆来做这个或其他什么?

例如,我想调用一个函数来检测某人发布的表单数据是否是有效的 php 整数。

我想调用执行此操作的函数:is_php_integer($str_test_input)。函数中的内容是什么?

<?php

$strInput = 'test' //function should return FALSE
$strInput = '' //function should return FALSE
$strInput = '9000000000000000' //function should return FALSE since
//is not valid int in php
$strInput = '9000' //function should return TRUE since
//valid integer in php
$strInput = '-9000' // function should return TRUE
$strInput = '0x1A' // function should return TRUE
// since 0x1A = 26, a valid integer in php
$strInput = '0' // function should return TRUE, since
// 0 is a valid integer in php
$strInput = '0x0' // function should return TRUE, since
// 0x0 = 0 which is a valid integer in php
$strInput = '0000' // function should return TRUE, since
// 0000 = 0 which is a valid integer in php

function is_php_integer($strTestInput) {
// what goes here?
// ...
// if string could be interpreted as php integer, return true
// else, return false
}

if is_php_integer($strInput) {
echo 'your integer plus one equals: '. (intval($strInput) + 1);
} else {
echo 'your input string is not a valid php integer'
}

?>

提前致谢!

最佳答案

<?php

$input = array(
'test',
'',
'9000000000000000',
'9000',
'-9000',
'0x1A',
'0',
'0x0',
'0000'
);

function is_php_integer($strTestInput) {
return filter_var( $strTestInput, FILTER_VALIDATE_INT, array('flags' => FILTER_FLAG_ALLOW_OCTAL | FILTER_FLAG_ALLOW_HEX));

}

foreach ( $input as $value ) {
if (is_php_integer($value) !== FALSE) {
echo 'your integer plus one equals: '. (intval( $value ) + 1) . PHP_EOL;
} else {
echo 'your input string is not a valid php integer' . PHP_EOL;
}
}

关于php - 考虑到 toInt 返回 0 表示失败而不是 false,在 PHP 中将任何字符串数字转换为整数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14448244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com