Php 为setInterval调用的函数提供参数

Php 为setInterval调用的函数提供参数,php,javascript,Php,Javascript,我有以下功能: <script> var count=900; var countM; var counter=setInterval(timer, 1000); //1000 will run it every 1 second function timer() { count=count-1; countM=Math.floor(count/60); if (count <= 0)

我有以下功能:

<script>
    var count=900;
    var countM;
    var counter=setInterval(timer, 1000); //1000 will  run it every 1 second

    function timer()
    {
        count=count-1;
        countM=Math.floor(count/60);
        if (count <= 0)
        {
            clearInterval(counter);
            return;
        }

        for(var i=0; i<10; i++)
        {
            document.getElementById("timer"+i).innerHTML=countM+"mins. "+(count%60)+ " secs"; // watch for spelling
        }
    }
</script>

var计数=900;
var-countM;
var计数器=设置间隔(计时器,1000)//1000将每1秒运行一次
函数计时器()
{
计数=计数-1;
countM=数学楼层(计数/60);
如果(计算)
'我想给它一个参数,称之为“count”'

如下所示:

function createTimer(count) {
    var countM,
        counter=setInterval(timer, 1000);

    function timer()
    {
        count -= 1;
        countM = Math.floor(count/60);
        if (count <= 0) {
            clearInterval(counter);
            return;
        }
        for(var i=0; i<10; i++) {
            document.getElementById("timer"+i).innerHTML=countM+"mins. "+(count%60)+ " secs"; 
        }
    }
}
如果您希望不同的跨距具有不同的计数器,则可以执行以下操作:

function createTimer(count, elementID) {
   // code exactly the same as above function except
   // remove the `for` loop and just reference the elementID
   // passed into the function:
   document.getElementById(elementID).innerHTML=countM+"mins. "+(count%60)+ " secs"; 
}

createTimer(900, 'timer1');
createTimer(200, 'timer2');
// etc.
演示:

像这样吗

var counter = window.setInterval(function() {
    timer('parameter');
}, 1000);
我看不出javascript和PHP部分之间的关系。

使用函数原型创建带有默认参数的函数

timer.bind(null,count-1);
第一个参数是函数上下文(null表示全局),从左开始为函数参数设置以下可选参数。结果是新函数。因此在代码中:

function timer(count) {
    console.log(count); // do some stuff
    if(count>0) setTimeout(timer.bind(null,count-1),1000);
}

timer(10); // counts from 10 to 0 in 1s interval

请看

您没有发布调用函数的方式和位置。我也不明白
span
元素如何调用函数。span元素显示计时器,它是一个倒计时计时器,我添加了$theCounter变量来显示不同的计时器!啊。我还注意到
var counter=setInterval(timer,1000)
现在就加入你的代码。因此,与
span
元素交互不会启动函数,而是立即调用。你问题的标题提出了其他建议,让我感到困惑。谢谢你的回答,问题是我在我的网页中的一个表的计时器中显示,使用,我如何在php上调用函数?谢谢s@user2465233:这是一个JavaScript函数。您不能在PHP中调用它。只需将
createTimer(900);
放在函数定义之后。如果您想使用PHP变量值而不是
900
,请执行与HTML中相同的操作:
createTimer();
。哦!这是一种具有逻辑性的方法,让我试试,非常感谢!
timer.bind(null,count-1);
function timer(count) {
    console.log(count); // do some stuff
    if(count>0) setTimeout(timer.bind(null,count-1),1000);
}

timer(10); // counts from 10 to 0 in 1s interval