有没有办法在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()
是正确的吗?
答案 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;
}
}
希望这会有所帮助!