【问题标题】:Reset While loop value in PHP在 PHP 中重置 While 循环值
【发布时间】:2017-03-06 16:49:02
【问题描述】:

我有一个 php 循环,但它会不断打印彼此相邻的值,而不是清除第一个循环值并用新的循环值替换它。这是我的代码。

   while (1==1) {
        $a=array("red","green","blue","yellow","brown");
        $x=array_rand($a,3);
        sleep(5);
        print $a[$x[0]]; 
   }

基本上它只需要每5秒自己回显一个新的随机值,目前它不会删除旧值。

【问题讨论】:

  • 据我了解,这不能通过 PHP 完成。正如 PHP 所做的那样,它会将数据发送给用户。它无法清除它已经发送的内容。您需要像 JavaScript 这样的客户端来更改用户已经看到的值。
  • 在终端窗口中运行的唯一方法是在终端窗口中,您需要返回到行首:print $a[$x[0]]."\r"; 并考虑某些单词比其他单词更长:@987654323 @
  • 为什么要删除之前的值? “print”的意思是“打印”,而不是“删除之前的内容然后打印”
  • 最好使用$x=array_rand($a);print $a[$x] . PHP_EOL;,因为您实际上并没有使用3 个随机值,而您只使用了一个

标签: php while-loop


【解决方案1】:

尝试使用jquery,下面的例子是随机数。

<script>

    var id = window.setInterval(function(){randomNumber();},1000);

    function randomNumber()
    {
        var rand = Math.floor(Math.random()*6);
        //Do whatever you want with that number
        $('#holder').html(rand);
    }

</script>



<!DOCTYPE html>
<html>
<head>
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <meta charset=utf-8 />
    <title>Random Number</title>
</head>
<body>
<div id='holder'></div>
</body>
</html>

随机文本

var names = ['test1', 'test2', 'test3', 'test4'];

setInterval(function() {
  var rand = Math.floor(Math.random() * 4);
  document.getElementById("name").innerHTML = names[rand];
}, 2000);

<div id="name">test</div>

【讨论】:

    【解决方案2】:

    我不确定我是否理解你想要完成的事情,但我认为这就是你想要做的事情。

    $a=array("red","green","blue","yellow","brown");
    while (count($a)) {
    
            $x=array_rand($a);
            sleep(5);
            echo chr(13). $a[$x];
    
    }
    

    【讨论】:

      猜你喜欢
      • 2016-11-27
      • 1970-01-01
      • 1970-01-01
      • 2014-10-19
      • 2013-06-12
      • 1970-01-01
      • 1970-01-01
      • 2017-09-10
      • 2011-10-21
      相关资源
      最近更新 更多