得到“使用未定义的常量”错误,我无法弄清楚

时间:2009-08-03 06:58:08

标签: php static

我收到了以下奇怪的错误。

  • 在[C:\ Documents and Settings \ yepthatsme \ My Documents \ Dev \ nicnames \ main \ resources \ includes \ name.inc]中出现意外的PHP错误[使用未定义的常量s - 假定的's']严重性[E_NOTICE]。 php line 180]

它指的是:

        $types = nicnames_config::$resourcetypes;

nicnames_config :: $ resourcetypes是一个数组。我不知道它的谈论来自何处,我开始认为它可能是一个PHP错误,尽管我可能错过了一些东西。我应该在哪里看?

我正在使用SimpleTest进行测试,并且在特定测试期间发生此错误。

如果你感兴趣,这就是上下文中的那一行:

function getstrings()
    // returns array of strings suitable for human-readable rendering of this
    // piece of informtion.  Contains such fields as 'title', 'subtitle', 
    // 'pre-qualifier', 'post-qualifier', 'comment', etc
{
    $types = nicnames_config::$resourcetypes; // line 180

    $type = isset($types['name_type'][$this->type]) ?
        $types['name_type'][$this->type] : $this->type;
    $givens = $this->givennames == '' ? null : $this->givennames;
    return array(
        'title' => $this->surnamefirst ? ($this->surname . ',') : $givens,
        'subtitle' => $this->surnamefirst ? $givens : $this->surname,
        'pre-qualifier' => $type,
        'post-qualifier' => $this->title == '' ? null : ('(' . $this->title . ')'),
    ) + $this->getcommonstrings();
}

编辑:问题现已解决,请参阅我自己的答案。

1 个答案:

答案 0 :(得分:2)

PHP错误消息导致错误的位置错误 - 我最终在一个完全不同的源文件中的某一行的末尾发现了一个流浪字母'',其中nicnames_config类和此静态成员,已定义。

似乎在使用静态成员变量时,变量值不是在声明类时,而是在首次引用变量时(猜测这是一个不错的优化),但是如果在赋值PHP时出错则得到错误的位置错误。