我是一个使用php编码的绝对菜鸟,我想在笑了几下之后,对于专业人士来说,解决方案真的很简单。我为wp-template的category.php编写了一个简单的平均计算代码,它可以正常工作,但是我听说这是拆分设计和功能的更好方法,因此我尝试将其简化为模板函数:
<?php
$total = 0;
$count = 0;
foreach($posts as $post)
{
if(get_field('weight')){ // If we have a value add it to the total and count it
$total += get_field('weight');
$count++;
}
}
$Average = $total / $count;
echo $Average;
?>
结果始终为“ 0”,因为我猜他是从上方拉出变量并跳过了foreach-procedure。但为什么?
function averageit()
{
$total = 0;
$count = 0;
foreach($posts as $post)
if(get_field('weight'))
$total += get_field('weight');
$count++;
$Average = $total / $count;
echo $Average;
}
我希望有人能够帮助我。先感谢您!
您的问题可能是可变范围之一。如果可以的话,变量的“作用域”是该变量“存在”的代码部分。
在您的情况下,请考虑您的foreach循环,循环遍历$ posts变量中的项目。$ posts变量在哪里声明?我怀疑函数运行时该变量不存在,因此循环根本没有执行。
我建议对您的功能进行以下修改:
function find_average_weight($posts)
{
$total = 0;
$count = 0;
foreach($posts as $post)
{
if(get_field('weight'))
{
$total += get_field('weight');
$count++;
}
}
$Average = $total / $count;
return $Average;
}
这里有一些变化。
要使用新功能并输出结果,您现在可以编写如下代码:
echo(find_average_weight($posts));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句