PHP - 需要 __construct() 的帮助
PHP - need an assits with __construct()
所以我有这个 PHP 我没有得到的代码
public $user = 'guest';
public function __construct()
{
$this->user = (isset($_SESSION['user'])) ? $_SESSION['user'] : 'guest';
}
谁能解释一下上面的代码,我是否有机会在不访问服务器端的情况下更改会话值?
传入的请求正在由服务器上的脚本处理(如 splash58 指出的那样 PHP)
__construct() 创建新对象,并在内部判断会话($_SESSION 超全局数组)中是否还没有设置 user
,它将 'guest' 值注入 $this->user
。
基本上是在说"if user did not log in, he's a guest"。
您不能从前端更改 $_SESSION 内容,这是在服务器端完成的,因此您必须修改 PHP 脚本才能应用更改。
编辑:
为了澄清起见,您在构造函数中看到的是三元运算符。此处的文档:https://www.php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary
所以我有这个 PHP 我没有得到的代码
public $user = 'guest';
public function __construct()
{
$this->user = (isset($_SESSION['user'])) ? $_SESSION['user'] : 'guest';
}
谁能解释一下上面的代码,我是否有机会在不访问服务器端的情况下更改会话值?
传入的请求正在由服务器上的脚本处理(如 splash58 指出的那样 PHP)
__construct() 创建新对象,并在内部判断会话($_SESSION 超全局数组)中是否还没有设置 user
,它将 'guest' 值注入 $this->user
。
基本上是在说"if user did not log in, he's a guest"。
您不能从前端更改 $_SESSION 内容,这是在服务器端完成的,因此您必须修改 PHP 脚本才能应用更改。
编辑: 为了澄清起见,您在构造函数中看到的是三元运算符。此处的文档:https://www.php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary