gpt4 book ai didi

php - 对 PHP func_num_args() 函数感到困惑

转载 作者:行者123 更新时间:2023-12-02 22:01:57 27 4
gpt4 key购买 nike

按照教程,我正在努力解决 PHP 函数中的问题。我有一些 C# 和 Java 的基本背景,据我所知,这段代码不应该工作,因为我没有在 add() 函数中传递任何参数,但是,令人惊讶的是,它工作了!
根据PHP Manual func_num_args() 获取传递给函数的参数数量。那么我们如何在函数中不传递任何参数的情况下回显 add() 函数的结果?!另外,如果该函数用于获取参数的数量,我们如何使用它来计算数字?!

<?php
function add(){
$args = func_num_args();
$sum = 0;
$i = 0;
for($i; $i< $args; $i++ ){
is_int(func_num_args($i)) ? $sum+= func_num_args($i) : die('Use Only Numbers');
}
}

echo add(2,5,10,12);
?>

感谢您的意见

最佳答案

使用 func_get_args() :

function add(){
if(!func_num_args())return 0;

$args = func_get_args();
$sum = 0;

foreach($args as $arg){
if(is_int($arg)){
$sum += $arg;
} else {
die('Use Only Numbers');
}
}

return $sum;
}

正如我在“无参数”案例的评论中提到的:

func_num_args() s 返回值为 0 . for$i < $args 开始,代码中的循环将不起作用简化为 0 < 0 ,即 false .

为了避免这种情况,您可以尝试使用:

if(!func_num_args()){
die('There are no args!');
}

您的线路echo add();无论如何都会工作,because :

PHP has support for variable-length argument lists in user-defined functions. This is really quite easy, using the func_num_args(), func_get_arg(), and func_get_args() functions.

No special syntax is required, and argument lists may still be explicitly provided with function definitions and will behave as normal.

关于php - 对 PHP func_num_args() 函数感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16805729/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com