有没有一种方法可以在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;
}
}
希望这会有所帮助!