繁体   English   中英

在类中声明$ var_1 = $ var_2

[英]declare $var_1 = $var_2 inside a class

有没有办法声明类似$session_username = $_SESSION['simple_auth']['username']; 在php类中,因此我可以在此类内的每个方法中使用$ 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;
    }
}

希望这会有所帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM