在类内声明$var_1=$var_2


declare $var_1 = $var_2 inside a class

有没有一种方法可以在php类中声明类似$session_username = $_SESSION['simple_auth']['username'];的东西,这样我就可以在这个类中的每个方法中使用$session_username?

这就是我不必在每个方法中再次声明我的变量名。

手册告诉我,只有当一个变量是"简单"的,比如字符串或数字时,我才能声明它,否则我会得到一个解析错误。我也试着把它声明为常量或公共变量,但据我所知,它不是这样工作的。

正确的方法是什么?

编辑:感谢您的解释。以下是我现在所做的一个例子(还有一些需要理解的事情)

new session_auth();
class session_auth{
    public $sessionID; // php session variable for id
    public $sessionUSERNAME; // php session variable for username

    public function VarSession() {
    $this->sessionID = $_SESSION['simple_auth']['id']; // php session variable for id
    $this->sessionUSERNAME = $_SESSION['simple_auth']['username']; // php session variable for username
    }
    function is_user_logged_in() {
        if (!empty($this->sessionUSERNAME) && $this->sessionUSERNAME != 'guest') {
            return true;
        }
    }
}

所以我在php类中声明我的变量。然后我在函数VarSession()中定义我的变量。然而,由于我无法使用它们,函数is_user_logged_in()是正确的吗?

将变量设置为类的属性,如下所示:

class Helloworld
{
    // Create your class property
    public $sessionUsername;
    public function helloWorld()
    {
        // Set your class property
        $this->sessionUsername = $_SESSION['simple_auth']['username'];
    }
}

然后你可以通过以下操作在整个课堂上访问它:

$this->sessionUsername

您可以创建名为username 的对象/类的属性

private $username = null;

并用类构造函数__constructor初始化用户名,使得每次调用类时用户名也被初始化。

例如

class ClassName extends AnotherClass {
  private $username = null;
  public function __construct() {
    $this->username = $_SESSION['simple_auth']['username'];
  }
  public function get () {
    return $this->username;
  }
}

并创建作为类的getter的函数get,以正确地获得名为username的类的实例的值。

class abc{
    private $variable = "test"
    public function function1(){
         echo $this->variable;
    }
}

希望这会有所帮助!