首页 > 解决方案 > 返回多个数字之一的最大值并验证参数是否为数字的函数

问题描述

我正在编写一个名为 max_number 的函数,它返回数字变量的最大值。如果参数之一不是数字,则返回 false。使用 is_numeric() 函数。但该函数总是返回 false。我会做错什么吗?

代码和这个:

<?php
function max_number()
{
    $args = func_get_args();
    if( $args !== null && !is_numeric($args)){
        echo "false";       
    }
    else{
        echo "Maximo number is: " . max($args);
    }
}

max_number(1,2,3,4,5);
?>

标签: phpfunction

解决方案


在您的代码$args中是一个数组,并且is_numeric($args)将始终返回false.

您需要$args单独检查每个元素。

<?php

function maxNum() {
    $args = func_get_args();
    return ($args === array_filter($args,'is_numeric'))?max($args):false;
}

echo maxNum(1,2,3,4,5);          // 5

echo maxNum(1,"No!",3,4,5);     // false

推荐阅读