提问人:grongor 提问时间:3/10/2011 最后编辑:Charlesgrongor 更新时间:3/31/2011 访问量:768
未定义或已定义的索引?决定
Undefined or defined index ? Decide
问:
我有奇怪的问题。
Line 61: $this->_currentRoute = Default_Model_Routes::getInstance()->getCurrentRoute();
.......... other code ..........
Line 86: var_dump(isset($this->_currentRoute['url']));
Line 87: var_dump($this->_currentRoute['url']);
Line 88: if ($this->_currentRoute['url'] == $currentUrl)
Line 89: $navigation[$key]['active'] = true;
Line 90: var_dump($this->_currentRoute);
结果如下:
bool(true)
string(62) "cs/Polozka-menu-1/Polozka-menu-1-1/Polozka-menu-1-1-1/Clanek-1"
array(17) {
["url"]=>
string(62) "cs/Polozka-menu-1/Polozka-menu-1-1/Polozka-menu-1-1-1/Clanek-1"
["type"]=>
string(7) "article"
............
}
在错误日志中:
[09-Mar-2011 19:49:32] PHP Notice: Undefined index: url in ...file... on line 87
[09-Mar-2011 19:49:32] PHP Notice: Undefined index: url in ...file... on line 88
如果您有任何想法,哪里可能有问题或如何解决,请告诉我。 谢谢:)
我尝试了另一个测试:
$test = array();
echo $test['lol'];
有了这个结果:
Notice: Undefined index: lol in ...file... on line 92
有人认为非常有趣:输出中显示了这个“lol”错误,但“url”错误不是!它只在日志中......为什么?????这是同一个文件,在“url”var_dump()下行......疯狂
答:
0赞
azat
3/10/2011
#1
也许这不是你的错误?
尝试
并查看方法ini_set('display_errors', 1);
Default_Model_Routes::getInstance()->getCurrentRoute()::__get()
评论
0赞
grongor
3/10/2011
是的,真的是......我真的不明白你说的那个方法是什么意思......getCurrentRoute() 返回简单数组 - 索引的定义正如您在我的 var_dump() 中看到的那样......顺便说一句,如果我在“标题”或“内容”索引上执行 var_dump(),它也会正确检索它,但 alse 会抛出相同的错误......
0赞
azat
3/10/2011
试试这个 $this->_currentRoute['url'] = 'test';var_dump($this->_currentRoute['url']);
0赞
grongor
3/10/2011
...这不会抛出错误......但这对我也无济于事,:D......顺便说一句,在“url”索引中没有问题,问题出在这个数组中的所有索引中......它们显示、工作和存在 - 但抛出错误......哈哈
2赞
Ben DeMott
3/10/2011
#2
如果先赋值给变量,会发生什么情况?$this->_currentRoute
$route = $this->_currentRoute;
var_dump(array_key_exists('url', $route));
var_dump(isset($route['url']));
print "PRINTING: ".$route['url'];
die("ENDING ON LINE [".__LINE__."] !!!");
已解决(见评论)
不幸的是,这是 Zend Server 或前沿 PHP 5.3.3 的问题。
评论
0赞
grongor
3/10/2011
bool(true)、bool(true)、cs/Polozka-menu-1/Polozka-menu-1-1/Polozka-menu-1-1-1/Clanek-1 AND 确切错误指出索引未定义
0赞
Ben DeMott
3/10/2011
你是说它打印出 cs/Polozka-men......(这是 URL)???我认为您的问题可能与其他问题有关,我编辑了我的帖子 - 更改您的代码以遵循并查看会发生什么。
0赞
grongor
3/10/2011
是的,它打印了所有内容。我不认为这个问题与代码有关——它是完美而简单的......但是,问题出在哪里呢?...
0赞
grongor
3/10/2011
这是结果: bool(true), bool(true), PRINTING: cs/Polozka-menu-1/Polozka-menu-1-1/Polozka-menu-1-1-1/Clanek-1, ENDING ON LINE [90] !!
0赞
Ben DeMott
3/10/2011
那没有错吗?- 这意味着索引错误发生在其他地方,或者您有一个不稳定的 PHP 模块/共享对象或 PHP 发行版。
评论
var_dump($this->_currentRoute)
url
url