PHP检查多个值是否为整数的最简方法?如何优化现有校验代码?
PHP多个整数值校验的简化实现
方案1:遍历关联数组批量校验(全版本兼容)
你原来的逐行判断写法可以通过可变变量+数组遍历大幅简化,新增校验规则时无需重复写判断逻辑:
// 配置参数名和对应错误提示的映射 $checkItems = [ 'chartWidth' => 'Chart width must be an integer', 'chartHeight' => 'Chart height must be an integer', 'gridTop' => 'Grid top must be an integer', 'gridLeft' => 'Grid left must be an integer' ]; foreach ($checkItems as $paramName => $tip) { if (!is_int($$paramName)) { echo $tip; // 可根据业务需要加中断逻辑,或者收集所有错误后统一返回 } }
如果业务允许字符串格式的整数(比如前端传参过来的"200"),可以把is_int替换为filter_var($$paramName, FILTER_VALIDATE_INT)。
方案2:函数参数强类型声明(PHP 7+ 推荐)
如果这些都是函数的入参,直接在定义函数时声明参数类型为int即可,PHP会自动完成类型校验,不符合要求时会直接抛出TypeError,无需手动写判断代码:
// 强类型参数声明,入参会自动校验为int类型 function generateChart(int $chartWidth, int $chartHeight, int $gridTop, int $gridLeft) { // 函数内部无需再做整数校验,参数已经符合要求 }
如果需要兼容弱类型转换,比如把字符串数字自动转为整数,可以在文件顶部加declare(strict_types=0);(默认就是0,无需额外配置)。
内容的提问来源于stack exchange,提问作者user389391
相关产品推荐
相关产品推荐

