我想多次访问一个数组,为此,我将数组与以下会话声明一起存储在Session数组中
$_SESSION['data'] = array();
是否有可能像通用变量一样使用$ _SESSION
最初调用函数index(),然后单击设置的另一个按钮 formval = 1并转到函数index2
<?php
new SampleController();
session_start();
class SampleController {
public function __construct() {
if (isset($_REQUEST['formval']) && $_REQUEST['formval'] == '1') {
self::index2();
} else {
self::index();
}
}
public function getfunc1() {
$_SESSION['data'] = array();
$datarray = array('0', '1', '2');
$_SESSION['data'] = $datarray;
}
public function getfunc2() {
print_r($_SESSION);
$val = $_SESSION['data'];
}
}
它显示为
未定义变量:_SESSION
我希望需要访问$_SESSION['data']
数组
答案 0 :(得分:0)
您必须在类声明之前添加会话开始。如果将会话开始添加到方法内部,则它将提供未定义的变量:_SESSION。 全部方法都必须添加session_start,或者可以在开始处添加会话星号。 这是示例
class Api
{
public function getName()
{
session_start();
$data = array('name'=>'Ashoka P');
$_SESSION['name'] = '1';
echo json_encode($data);
}
public function getAge()
{
echo '123';
}
}
如果您尝试在上述方法中访问getAge方法,则会给出未定义的_SESSION错误。 而以下情况不会导致错误
session_start();
class Api
{
public function getName()
{
$data = array('name'=>'Ashoka P');
$_SESSION['name'] = '1';
echo json_encode($data);
}
public function getAge()
{
echo '123';
}
}
答案 1 :(得分:0)
尝试一下将为您工作。
<?php
session_start();
class SampleController {
public function getfunc1(){
$datarray = array('0','1','2');
$_SESSION['data'] = $datarray;
}
public function getfunc2(){
return $_SESSION['data'];
}
}
$SampleController = new SampleController();
$SampleController->getfunc1();
$data = $SampleController->getfunc2();
print_r($data);
答案 2 :(得分:0)
这是错误的
new SampleController();
session_start();
首先启动会话
session_start();
new SampleController();