PHP(7)动态会话数据检索

我读到会议包装方式和存在方式:PHP(7)动态会话数据检索

/* 

to set something like $_SESSION['key1']['key2']['key3']:

$session->setMd(array('key1', 'key2', 'key3'), 'value')

*/

public function setMd($keyArray, $val)

{

$arrStr = "['".implode("']['", $keyArray)."']";

$_SESSION{$arrStr} = $val;

}

这正是我需要的,但是当我试图用这种方式如下:

$this->path = ['a','bb','ccc']; 

$this->_sessionStorage{"['".implode("']['",$this->path)."']"} = 'dddd';

ddd($this->_sessionStorage);

我得到这样的输出:

array(1) { 

["['a']['bb']['ccc']"]=>

string(4) "dddd"

}

这是假的还是我做错了什么?

回答:

不,这是php的预期行为。如果你想以这种方式访问​​数据,你应该使用一个循环。像这样的东西可以为你工作。

function setMd($keyArray, $value) { 

$data = &$_SESSION;

foreach ($keyArray as $key) {

$data = &$data[$key];

}

$data = $value;

}

以上是 PHP(7)动态会话数据检索 的全部内容, 来源链接: utcz.com/qa/262333.html

回到顶部