【问题标题】:Zend Session Namespace, get key of defined arrayZend Session Namespace,获取定义数组的键
【发布时间】:2013-03-10 23:06:56
【问题描述】:

我正在使用一些 Zend_Session_Namespace 对象来保存一些数据,其中大部分数据或多维数组。我感觉我错过了 Zend_Session_Namespace 逻辑的一部分,或者我没有将它们用于它们应该做的事情。

例如,我将 cd id 及其曲目列表存储为数组。

$session = new Zend_Session_Namespace('cd-track-list');
$session->{123} = array('First Track', 'Second Track');

之后我想循环会话命名空间,我想知道 cd 的 id 和它的 tracklist。

foreach($session as $key => $value {
   // $key is 0 -> but should be 123
   // $value is array('First Track', 'Second Track');
}

$value 是正确的,但是 $key 没有在这里设置。 所以我的问题是,当我循环所有 cd 时,如何获取 cd 的 id?

提前致谢。

【问题讨论】:

  • $session->123 应该抛出错误??那里不允许使用整数..
  • 我错了,改成$session->{123}
  • Zend 的哪个版本?

标签: zend-framework zend-session-namespace


【解决方案1】:

它不适用于您的整数索引,它被强制转换为“0”,这就是问题所在。 参见 "Zend_Session_Namespace.php" (__set)

$name = (string) $name;

你可以使用:

$session = new Zend_Session_Namespace('cd-track-list');
$session->a = array('First Track', 'Second Track');

foreach($session as $key => $value {
   // $key is 0 -> but should be 123
   // $value is array('First Track', 'Second Track');
}

【讨论】:

  • 谢谢,逻辑回答。我最好先检查一下 Zend_Session_Namespace 设置器!
  • 我很困惑。不是(string) 123 === '123'吗?
猜你喜欢
  • 2012-11-03
  • 1970-01-01
  • 2011-07-05
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
  • 2017-01-15
相关资源
最近更新 更多