【问题标题】:Creating functions that take a variable number of arguments创建带有可变数量参数的函数
【发布时间】:2015-06-11 13:10:35
【问题描述】:

在 O'reilly Cookbook 3d 版中有一个例子: (第 165 页(电子阅读器上的第 189 页))

<?php

function mean() {
    $sum = 0;

    $size = func_num_args();

    foreach (func_get_args() as $arg) {
        $sum += $arg;

        $average = $sum / $size;

        return $average;
    }
}
$mean = mean(96, 93, 98, 98);
echo $mean;


?>

平均值应该是 96,25 但回显结果是 24 ...我做错了什么?

虽然之前页面上的其他解决方案给出了很好的结果:

function sean($numbers){
    $sum = 0;
    $size = count($numbers);

    for ($i = 0; $i < $size; $i++) {
        $sum += $numbers[$i];

    }
$average = $sum / $size;

return $average;
}

$test = sean(array(96, 93, 98, 98));
echo $test;

【问题讨论】:

  • 您没有看到两个循环之间有任何显着差异...?
  • 我愿意,这在书中有说明。第二个例子(我在这里写的第一个)是:访问函数参数而不使用参数列表。

标签: php function arguments


【解决方案1】:

您在循环的第一次迭代中returning。
所有值被求和时,您需要平均和return 循环之后。

【讨论】:

  • 你是对的。所以书中有/曾经有一个错误:)
  • 如果您的第一个示例是该书的直接副本,那么可以。它有时会发生。他们通常会在新添加的内容中得到报告或清除。此外,从 O'Reilly 网站购买的好处是您可以免费获得电子书的更新,例如此类错误可能会得到纠正。
  • 你说得对,这是本书的第一版。顺便在书中的例子中发现了更多的错误。我一般注意到的是:他们希望你已经可以编程一点。所以他们忘记了给出实际结果的部分。与 print_r、echo 或 var_dump 一样,它们希望您知道如何自己获得最终结果。而当你作为菜鸟测试本书的代码时,你最终会得到一个空白屏幕:)
猜你喜欢
  • 2018-02-02
  • 1970-01-01
  • 2012-11-23
  • 1970-01-01
  • 2018-07-19
  • 1970-01-01
  • 1970-01-01
  • 2012-04-18
  • 1970-01-01
相关资源
最近更新 更多