Php 函数,该函数返回多个数字中的一个的最大值,并验证参数是否为数字
我正在编写一个名为max_number的函数,它返回一个数的最大值 数字是可变的。如果其中一个参数不是数字,则返回false。 使用is_numeric()函数。但是函数总是返回false。我会做错什么吗 守则及本条例: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
<?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