Php 函数,该函数返回多个数字中的一个的最大值,并验证参数是否为数字

Php 函数,该函数返回多个数字中的一个的最大值,并验证参数是否为数字,php,function,Php,Function,我正在编写一个名为max_number的函数,它返回一个数的最大值 数字是可变的。如果其中一个参数不是数字,则返回false。 使用is_numeric()函数。但是函数总是返回false。我会做错什么吗 守则及本条例: <?php function max_number() { $args = func_get_args(); if( $args !== null && !is_numeric($args)){ echo "fal

我正在编写一个名为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);
?>



在您的代码中,
$args
是一个数组,
是数值($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

func\u get\u args()
返回一个数组!您希望它返回一个数值
$args
是一个数组,因此
是数值的检查将始终为false。
!is numeric($args)
总是
true
,因为
func\u get\u args()
返回一个数组。。。你的情况没有任何意义你是绝对正确的,事实上这毫无意义。正确的做法是,如果($args==null&&is_numeric($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