如何在PHP乘法函数中过滤字符串并将浮点数转为整数运算
修正后的PHP乘法函数实现
原代码存在字符串判断不直观、未处理浮点数转整数、结果输出逻辑重复、无返回值导致额外空输出等问题,以下是符合需求的实现:
function multiply(...$nums) { $result = 1; foreach ($nums as $num) { // 跳过字符串类型参数 if (is_string($num)) { continue; } // 将浮点数转换为整数,此处用intval()取整,可按需替换为floor/ceil $processedNum = is_float($num) ? intval($num) : $num; $result *= $processedNum; } return $result; } // 测试用例 echo multiply(10, 20); // 输出200 echo "<br>"; echo multiply("A", 10, 30); // 输出300 echo "<br>"; echo multiply(100.5, 10, "B"); // 输出1000(100.5转为100后乘10)
关键修改说明:
- 用
is_string()直接判定字符串类型,比gettype()对比写法更简洁易读 - 新增浮点数转整数逻辑,通过
intval()实现基础取整,可根据需求调整为floor()或ceil() - 函数内部取消直接输出,改为返回计算结果,避免重复打印问题
- 调用时直接echo函数返回值,符合常规函数使用逻辑
内容的提问来源于stack exchange,提问作者kerolos samy
相关产品推荐
相关产品推荐

