我在php中运行并返回一个数字。但是我想要的是每次运行函数时要加起来的数字。
这是代码。
function sumRate(&$numbers) {
$sumArray="0";
if($numbers)
$sumArray=$numbers;
$countedArray=($sumArray+$numbers);
echo "<script>console.log('$countedArray')</script>";
}
当按钮单击时,Jquery Ajax将值发送到服务器端。
让我们说
sumRate("23");//console log 23
sumRate("20");//console log 20
但我想要的是,每次运行该功能时,控制台都要记录43而不是登录每个号码
Weldone提前
答案 0 :(得分:1)
您不会看到输入被加在一起,因为您的输入只会持续与函数调用一样长。您需要一个可以存储此值的变量,并且不限于sumRate
尝试
$mySum = 0;
sumRate($mySum, 23);//console log 23
sumRate($mySum, 20);//console log 43
function sumRate(&$sum, $number) {
if($number)
$sum +=$number;
echo "<script>console.log('$sum')</script>";
}
答案 1 :(得分:1)
我不确定你的目标是什么,但是如果你想跟踪一个运行总和,一种方法是使用globals这样:
$sum = 0;
function sumRate($number) {
global $sum;
if($number) {
$sum += intval($number);
echo "<script>console.log('$sum')</script>";
}
}
sumRate("20");
sumRate("23");
输出:
<script>console.log('20')</script>
<script>console.log('43')</script>
旁注:
我们无法通过引用传递值文字。如果我们在带有签名sumRate("23")
的函数上调用function sumRate(&$numbers)
,则会抛出致命错误。而是传入一个变量,或者从签名中省略&
。
<强>更新强>
在客户端,如果您只想要最终的总和,而不是每个数字,那么您可以这样做:
$sum = 0;
function sumRate($number) {
global $sum;
if($number) {
$sum += intval($number);
}
}
sumRate("20");
sumRate("23");
echo "<script>console.log('$sum')</script>";
输出:
<script>console.log('43')</script>
答案 2 :(得分:1)
简单
<?php
function sumRate($numbers) {
global $countedArray;
$countedArray=$numbers+$countedArray;
return $countedArray;
}
echo sumRate(20);
echo sumRate(23);
?>