Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 意外的T_PAAMAYIM_NEKUDOTAYIM,期待T_NS_分隔符_Php_Syntax Error - Fatal编程技术网

Php 意外的T_PAAMAYIM_NEKUDOTAYIM,期待T_NS_分隔符

Php 意外的T_PAAMAYIM_NEKUDOTAYIM,期待T_NS_分隔符,php,syntax-error,Php,Syntax Error,我在周末将一个应用程序从(Natty Narhall)服务器移动到(RHEL)服务器。我的错误日志在主题行中充满了PHP错误,引用了以下函数: function wfTalkHereArticleFromTitle( &$title, &$article ) { global $wgRequest, $wgTalkHereNamespaces; if (isset($title->noTalkHere)) return true; //St

我在周末将一个应用程序从(Natty Narhall)服务器移动到(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;
至少在这个文件中,这足以修复错误吗?


检查包含
的所有行,确保它们都是正确的调用。

看起来您的新服务器运行的是PHP5.3,而旧服务器运行的是早期版本

在PHP5.3中,
名称空间
是一个关键字,这要归功于


您现有的
命名空间
类需要重命名。代码试图将
名称空间::isTalk()
解析为名称空间名称时发生解析错误。(这样做的语法类似于
名称空间Foo
;看到
解析运算符时会感到困惑。)

@Charles hehe错误拼写不正确:-p顺便说一下,错误实际上拼写为“PAAMAYIM NEKUDOTAYIM”(谷歌搜索时很有用)。正如Neal提到的,“PAAMAYIM NEKUDOTAYIM”是希伯来语中的双冒号(PHP的原始作者是以色列人)。Pfft,我是一个标签专家,而不是一个会说话的纳粹。Zend Engine的作者是以色列人,而Lasmus不是。@Gordon我明白了(顺便说一句——不是每个人的答案都是相同的顺序:-P)