【问题标题】:cakephp issue in fetching session data获取会话数据时的 cakephp 问题
【发布时间】:2016-01-18 18:21:29
【问题描述】:

在我的项目中,我使用以下方式从会话中存储和获取数据。

写入数据:

$this->Session->write('data', array('title'=>'Abc'));

读取数据:

$this->Session->read('data')['title'];

而且它在实时服务器上仍然可以正常工作。 2 天前,我将我的代码转移到了其他一些实时服务器。现在此服务器显示致命错误 $this->Session->read('data')['title']; 即意料之外的 [ ]

然后我用谷歌搜索,发现还有其他方法可以获取索引,例如

$this->Session->read('data.title');

如果$this->Session->read('data')['title'] 是错误的方式,那么它在我的旧服务器上仍然如何工作。

提前致谢。

【问题讨论】:

  • 请注明您的 cakephp 和 php 版本。
  • 这听起来像是 PHP 版本的不同。您当前使用的是什么版本,旧服务器上的内容是什么?
  • 新服务器 php 版本是 : 5.3.32.0 而旧服务器是 : 5.4.162.0 你认为是因为版本?

标签: php session cakephp


【解决方案1】:

PHP 5.4 支持[] 这是一个简短的语法,在 PHP < 5.4 中不起作用。

来源: PHP Difference between array() and []




这就是您要查找的内容。上面的内容是我着急发的。

从 PHP 5.4 开始,可以直接对函数或方法调用的结果进行数组取消引用。以前只能使用临时变量。

Source

示例:

function getArray() {
    return array(1, 2, 3);
}

// on PHP 5.4
$secondElement = getArray()[1];

// previously
$tmp = getArray();
$secondElement = $tmp[1];

【讨论】:

    猜你喜欢
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-14
    • 2020-08-12
    • 1970-01-01
    • 2014-11-24
    相关资源
    最近更新 更多