PHP-一个PHP页面将在4秒间隔内接收GET数据,另一个页面将通过刷新自己来显示更新的数据


PHP- One php page will receive GET data in 4 second interval and another page will display the updated data by refreshing itself

问题是一个页面将收到GET数据在4秒的间隔,我必须显示参数值在另一个页面更新的值。它只是用于显示,不需要存储值。



datareceiver.php
<?php
    require 'localStore.php';
    if(isset($_REQUEST['name'])){
        localStore::setData($_REQUEST['name']);
    }
?>


localStore.php

<?php
    class localStore{
       private static $dataVal = "";
       public static function setData($data){
          self::$dataVal = $data;
       }
       public static function getData(){
          return self::$dataVal;
       }
    }
?>


display.php

<?php
    require 'localStore.php';
    header("Refresh:2");
    echo localStore::getData();
?>


如何在'display.php'页面显示数据,因为上面的'display.php'在页面上打印空白。我也尝试了全局关键字概念和PHP魔法_construct(), _get()和_set()通过搜索谷歌和通过stackoverflow。但这很难理解,因为我不是一个PHP的家伙。使用_get()、_set()和_construct()对我来说太糟糕了。

PHP不是这样工作的。无论如何,你必须将数据存储在某个地方。Script2对script1接收到的数据一无所知。当你构造你的localStore对象时,它不能访问由另一个执行构造的另一个对象的属性,因为你的datareciver对象在脚本结束后立即被销毁。您可以使用__destruct()方法

检查它。因此,您需要一些存储空间来保存script1接收到的数据,直到script2想要显示它。最常用的方法有:mysql DB, file and queue,比如Rabbit.

最简单的解是

   const FILE_NAME = 'tmp/anyname';
   public static function setData($data){
      return file_put_contents(self::FILE_NAME, serialize($data));
   }
   public static function getData(){
      $str = file_get_contents(self::FILE_NAME);
      return unserialize($str);
   }