从一页读取 PHP 全局变量,在另一页打印(都在相同的 PHP class 中)

read PHP global variable from one page, print in another (both in same PHP class)

我想知道为什么我的代码(可以缩减为以下结构)没有打印我认为应该打印的内容。基本上我在同一个 php 控制器 class 中有两个方法和两个对应的 html 页面。我想从 mypage.html 中检索 POST 请求(html 文本输入表单)的值,并将其打印在 secondpage.html 中,当用户单击 'submit' 按钮在文本框中输入内容后。

更新:我刚读到 PHP 会话,我的程序确实启动了会话。但是,即使用户输入的日期保存在数据库中,我是否应该使用会话?

<? php 

$var; // initializing global variable; 

class MyClass { 

   public function mypage () { 
      global $var; 
      $var = $_POST['form_name']; 
   } 

   public function secondpage () { 
      global $var; 
      print_r($var); 
   } 

}

在 class 中使用 global 很尴尬。 感觉不对。也许尝试使用 static 变量:

<?php 
class MyClass
    {
        public  static $var;

        public function mypage()
            {
                self::$var = 'test'; 
            } 

        public function secondpage()
            { 
                print_r(self::$var); 
            } 
    }

    $test   =   new MyClass();
    $test->mypage();

    // This will print test
    $test->secondpage();
    // This will also print test
    echo MyClass::$var; 
?>

如果您真的想从一个页面保存到一个全新的页面,您确实需要一个会话。

最简单的方法是将值存储在会话中,例如

<? php 
class MyClass { 

   public function mypage () { 
      $_SESSION['var'] = $_POST['form_name']; 
   } 

   public function secondpage () { 
      print_r($_SESSION['var']); 
   } 

}

这期望通过在其他地方调用 session_start() 来启动会话,但你说会话已启动。

但是把数据保存在数据库中,为什么不在secondpage()中读回来呢?