PHP Class 中如何访问 $_SESSION 变量?
php class 中如何在 function 中使用 $_session
在 php 中,为了在类的function中使用 $_session,需要明确地将 $_session 作为参数传递给该 function。
如示例所示:
class ccc { public function aaa(array $session) { return $session['rrr']; } public function abc() { $_session['rrr'] = 123; return $_session['rrr']; } }
在执行上述代码时,需要将 $_session 作为参数传递给 aaa function,如下:
$ccc = new ccc(); $session = $_session; $result = $ccc->aaa($session);
这样,aaa function 就可以访问 $_session 并获取到相应的值。
在浏览器中执行此代码时,浏览器会自动处理 session,因此不需要显式传递 $_session。但如果使用类似 curl 的工具测试,则需要传递 $_session,因为它不会自动处理 session。
要解决此问题,可以在请求发起前手动设置 cookie:
$cookie = 'PHPSESSID=' . session_id(); curl_setopt($ch, CURLOPT_COOKIE, $cookie);