有人可以修复我的功能吗?
首先,我如何从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);
}
}
?>
答案 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
希望有所帮助。