用点表示法写入会话数据

时间:2013-06-06 11:25:10

标签: cakephp cakephp-2.0 session-variables

我像这样添加会话变量:

foreach ( $data as $key => $value ) {
  $this->Session->write("MyVariable.$key", $value );
}

是否可以在不传递密钥的情况下将元素添加到会话变量数组中? 我的意思是这样的:

$MyArray[] = "apple";
$MyArray[] = "banana";

那么可以这样添加吗?伪代码:

$this->Session->write('MyVariable'.[], "apple");
$this->Session->write('MyVariable'.[], "banana");

编辑:$data数组用于举例。将保存的数据不是数组。这是一个字符串。每次我添加到会话变量我都不想通过代码给出密钥。我想知道它是否可以开箱即用。在我目前的代码中,我这样做:

    $newKey = count( $this->Session->read("MyVariable") );
    $this->Session->write("MyVariable.$newKey", "apple");

2 个答案:

答案 0 :(得分:0)

嗨,我想它应该是这样的:

foreach ( $data as $key => $value ) {
  $this->Session->write('MyVariable.'.$key, $value );
}

您必须在引号内放置一个点。

答案 1 :(得分:0)

如果您不想每次都给出键值,那么将其存储为像@mark这样的数组

$this->Session->write("MyVariable", $data);

如果要在代码的其他部分向$ data数组添加新值,则必须执行类似

的操作
$data = $this->Session->read("MyVariable");
$data[] = array('other'=>'value');
$this->Session->write("MyVariable", $data);

或添加像@mmahgoub所说的确切密钥

$this->Session->write("MyVariable".$key, $value);