【发布时间】:2012-02-02 19:46:45
【问题描述】:
我在周末将应用程序从 Ubuntu 11.04 (Natty Narwhal) 服务器移动到 Red Hat Enterprise Linux (RHEL) 服务器。我的错误日志充满了主题行中引用以下函数的 PHP 错误:
function wfTalkHereArticleFromTitle( &$title, &$article ) {
global $wgRequest, $wgTalkHereNamespaces;
if (isset($title->noTalkHere))
return true; //Stop recursion
$action = $wgRequest->getVal( 'action' );
$oldid = $wgRequest->getVal( 'oldid' );
$diff = $wgRequest->getVal( 'diff' );
if ($action == 'purge')
$action = NULL; //"purge" is not considered an action in this context
if ($action || $oldid || $diff)
return true;
$ns = $title->getNamespace();
if (!Namespace::isTalk($ns) && Namespace::canTalk($ns) && $title->exists()
&& ( !$wgTalkHereNamespaces || in_array($ns, $wgTalkHereNamespaces) ) ) {
$tns = Namespace::getTalk($ns);
$talk = Title::makeTitle($tns, $title->getDBKey());
if ($talk && $talk->userCan('read')) {
$t = clone $title;
$t->noTalkHere = true; //Stop recursion
$a = MediaWiki::articleFromTitle( $t );
$article = new TalkHereArticle( $a, $talk );
}
}
return true;
}
错误是在
If (!Namespace::isTalk($ns)
声明。这个错误对我来说是一个新错误。我该如何解决?
我把有问题的代码改成:
if ( !Ns::isTalk($ns) && Ns::canTalk($ns) && $title->exists()
&& ( !$wgTalkHereNamespaces || in_array($ns, $wgTalkHereNamespaces) ) ) {
$tns = Ns::getTalk($ns);
$talk = Title::makeTitle($tns, $title->getDBKey());
if ($talk && $talk->userCan('read')) {
$t = clone $title;
$t->noTalkHere = true; //Stop recursion
$a = MediaWiki::articleFromTitle( $t );
$article = new TalkHereArticle( $a, $talk );
}
}
return true;
至少在这个文件中是否足以修复错误?
【问题讨论】:
-
@Charles hehe 错误拼写不正确:-P
-
顺便说一句,错误实际上拼写为“PAAMAYIM NEKUDOTAYIM”(在谷歌搜索时很有帮助)。正如 Neal 提到的,“PAAMAYIM NEKUDOTAYIM”是希伯来语中双冒号的意思(PHP 的原作者是以色列人)。
-
噗,我是标签法学家,不是拼字纳粹。
-
Zend Engine 的作者是以色列人,而 Lasmus 不是。
标签: php syntax-error