所以我在index.php中有这个:
Zend_Session::start();
然后我在init方法的一个控制器中执行:
if (false === isset($this->defaultNamespace->tree)) {
$this->defaultNamespace->tree = array();
}
哪个仍然有效。但是在同一个控制器中我写了这个:
unset($this->defaultNamespace->tree); // I tried commenting this line
$this->defaultNamespace->tree = $this->tree;
我得到一个像这样的例外:
<br />
<b>Fatal error</b>: Uncaught exception 'Zend_Session_Exception' with message 'Zend_Session::start() - D:\data\o\WebProjects\elearning\public\index.php(Line:22): Error #2 include() [<a href='function.include'>function.include</a>]: Failed opening 'SlideQuestion.php' for inclusion (include_path='D:\data\o\WebProjects\elearning/../../library;D:\data\o\WebProjects\elearning/application/../library;.;C:\php\pear;D:\data\o\WebLib\ZendFramework\library;') Array' in D:\data\o\WebLib\ZendFramework\library\Zend\Session.php:493
Stack trace:
#0 D:\data\o\WebProjects\elearning\public\index.php(26): Zend_Session::start()
#1 {main}
thrown in <b>D:\data\o\WebLib\ZendFramework\library\Zend\Session.php</b> on line <b>493</b><br />
$ this-&gt;树是一个属性,包含一个包含一些对象的数组。
答案 0 :(得分:1)
好的,我想我已经解决了这个问题。
显然这是一个编码问题(因为最近经常出现这种情况......)。 Zend_Session可能只接受UTF-8编码数据。数组中的某些对象在其属性中包含Windows-1250字符串。
我只是使用foreach循环对象并将其更改为UTF-8:
foreach ($array as $obj) {
foreach ($obj as $property => $value) {
if (is_string($value)) {
$obj->$property = iconv('Windows-1250', 'UTF-8', $value);
}
}
}
现在它运作正常。
使用非标准编码(UTF-8除外,通常是Windows-1250)编写的该国际化应用程序:P
答案 1 :(得分:-1)
无法包含文件SlideQuestion.php
。
该库包含路径错误。
include_path='D:\data\o\WebProjects\elearning/../../library;
应该是
include_path='D:\data\o\WebProjects\elearning\..\..\library;