在类中声明$ var_1 = $ var_2

时间:2016-05-06 13:19:37

标签: php

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

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

手册告诉我,如果这个变量是“简单的”,我只能声明一个变量,比如字符串或数字,否则我会得到一个解析错误。我也尝试将它声明为constante或公共变量,但据我所知,它不会那样工作。

这样做的正确方法是什么?

编辑:谢谢您的解释。 这是我现在最终得到的一个例子(还有一些事情要理解)

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()是正确的吗?

3 个答案:

答案 0 :(得分:3)

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

class Helloworld
{
    // Create your class property
    public $sessionUsername;

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

然后你可以通过这样做访问整个班级:

$this->sessionUsername

答案 1 :(得分:2)

您可以创建名为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;
  }
}

并创建一个函数get,它是类的getter,以正确获取名为username的类实例的值。

答案 2 :(得分:1)

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

希望这会有所帮助!