- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
按照教程,我正在努力解决 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/
复制代码 代码如下: <?php function jb51(){
按照教程,我正在努力解决 PHP 函数中的问题。我有一些 C# 和 Java 的基本背景,据我所知,这段代码不应该工作,因为我没有在 add() 函数中传递任何参数,但是,令人惊讶的是,它工作了! 根
按照教程,我正在努力解决 PHP 函数中的问题。我有一些 C# 和 Java 的基本背景,据我所知,这段代码不应该工作,因为我没有在 add() 函数中传递任何参数,但是,令人惊讶的是,它工作了! 根
我看过PHP手册。但是我不明白 PHP 早期版本和后期版本之间的行为差异。我不明白这个说法: Because this function depends on the current scope
我是一名优秀的程序员,十分优秀!