访问另一个功能会话

时间:2019-04-15 06:08:45

标签: php

我想多次访问一个数组,为此,我将数组与以下会话声明一起存储在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']数组

3 个答案:

答案 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();