【问题标题】:How to define/declare a variable in a class such that its accessible in another files in PHP?如何在一个类中定义/声明一个变量,以便它可以在 PHP 中的另一个文件中访问?
【发布时间】:2015-12-26 17:25:45
【问题描述】:

我需要一个变量,它在所有正在使用的 PHP 文件中都可以访问,也就是说,我应该能够读取它并更改它的值。

我试图用变量 x 在文件中声明一个类:

在file1.php中

public class sample{
    public static $curruser = '0';

    public function getValue() {
        return self::$curruser;
    } 

    public function setValue($val){
        self::$curruser = $val;
    }
}

通过调用sample::setValue($val) 在file2.php 中设置它。此页面重定向到 file3.php

我需要访问这个变量file3.php:

include 'file1.php';
print sample::getValue();

这给了我0,而不是我在file2.php中设置的值。

显然,我对 PHP 中的静态变量的理解有点不稳定。是否有正确的方法来跨文件设置和访问变量?

【问题讨论】:

  • 您是否尝试过将文件包含在您希望包含的文件的顶部或通过 get/post 从文件传递到文件。
  • 您需要使用存储来保存不同请求之间的状态。
  • @Zapp:包括没用的东西。我需要多次更改该变量。 file3.php 具有重定向到自身的提交按钮。所以我不认为 get 或 post 会起作用。
  • @IhorBurlachenko 你的意思是 SessionState 和 LocalStorage?我不知道这个概念。让我试试看。

标签: php class static member static-members


【解决方案1】:

如果您希望数据在请求之间持久存在,请尝试使用会话或某种缓存机制。

【讨论】:

  • 会话不起作用,因为我需要更改变量的值。您能否详细说明一下缓存机制部分?
  • @xerocool,您可以更改会话变量的值。您可以像使用 $_POST 数组或 $_GET 数组一样使用 $_SESSION 数组。 $_SESSION['myVariable'] = "newValue";
【解决方案2】:

我建议像这样定义一个常量:

define('CONSTANT_NAME' ,$value);

并像这样访问值:

echo CONSTANT_NAME;

或者像这样使用静态函数和静态值和静态函数:

public static function setValue($val){
    self::$curruser = $val;
}
public static function getValue() {
    return self::$curruser;
} 

【讨论】:

  • 我尝试使用静态函数。没用。另外,如果我使用define,我可以在file3.php中更改变量的值吗?
  • 不能在 PHP 中使用不以 $ 开头的变量名..给出错误。
猜你喜欢
  • 2020-12-17
  • 1970-01-01
  • 2023-03-30
  • 2012-07-31
  • 2020-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-26
相关资源
最近更新 更多