寻找原始功能的平均值(以及其他问题!)

时间:2011-07-10 16:12:34

标签: php function

有人可以修复我的功能吗?

首先,我如何从sum函数中使用的数字中获取均值?如果我不知道将使用多少个数字,我可以使用哪些可变数来划分数字?

其次,为什么我的查找替换功能不起作用?当我用“坏”字运行字符串时,我得到了这个(我刚刚进入丑陋):

array(1) { [0]=> string(4) "nice" }

我希望返回的整个字符串只更换了坏字......

另外,即使它在那里它没有返回字符串的长度和字符串中的单词数! Grr ......非常沮丧所以我会非常感谢任何帮助...

文件一:(获得函数的返回)

    <?php
    require('myfunctions.php');
    if($_POST) {
    $result = phptest($_POST['input']);
    if ($result === false) {
    echo 'No rude words were found.';
    } else {
    var_dump($result);
    }
    }
    ?>

    <?php
    echo "<br/> Sum function:".sum(1,2,3,4)."<br/>";
    echo "Average function:".mean(1,2,3,4)."<br/>";
    ?>

    <form action="" method="post">
    <input name="input" type="text" size="20" maxlength="20" />
    <input name="submit" type="submit" value="submit" />
    </form>

myfunctions:

    <?php
    function sum()
    {
    $sum = 0;
    for ($i=0; $i<func_num_args(); $i++) $sum+= func_get_arg($i);
    return $sum;
    }

    ?>
    <?php
    function phptest($input) {
    $search = array('ugly', 'rude');
    $replace = array('nice', 'sweet');
    $output = str_ireplace($search, $replace, $input, $replace_count);
    if ($replace_count === 0) {
    return false;
    } else {
    return explode(' ', $output);
    }
    }

    ?>

2 个答案:

答案 0 :(得分:2)

无需重新发明轮子。利用PHP本机函数,例如array_sum()func_*函数。

function sum() {
  return array_sum(func_get_args());
}

function avg() {
  $args = func_num_args();

  if ($args == 0) {
    return 0;
  }

  return array_sum(func_get_args()) / $args;
}

phptest()功能而言,请参阅 Glass Robot 的评论。

答案 1 :(得分:0)

我建议使用内置的PHP函数array_sum(),而不是滚动自己的sum()函数。

假设您有一组想要使用的数字。如果您将它们放入数组中,则可以使用array_sum()添加它们,然后使用count()查找有多少数字。

<?php
$data = array(1,2,3,4);
echo "<br/> Sum function:".array_sum($data)."<br/>";
echo "Average function:".(array_sum($data) / count($data))."<br/>";
?>

如果坚持以您现有的mean()函数的风格编写自己的sum()函数,那么您已经使用{{已经回答了自己的问题1}},它完全符合您的要求,并告诉您有多少参数传递给函数。

当谈到你的第二个问题时,我不会直接回答,因为亵渎过滤器的整个主题已在本网站上被打死。它通常被认为是一个不可能解决的问题,因为它总是很容易找到任何过滤器的方法,并且它们通常会在最不幸的时刻抛出误报(即使你的功能有效,它也会被{{3但是如果你坚持写一个,我会在这里指导你这个问题,这对PHP有一个很好的答案:Clubttic mistake

希望有所帮助。