问题是一个页面将收到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);
}