类常量作为数组键

时间:2014-02-16 18:42:18

标签: php arrays key constants

请查看以下代码:

...
class LanguageResources {
    const SESSION_LANGUAGE_KEY = 'lang';

    public static function getLanguageSettingsFilePath() {

        if (isset($_GET[LanguageResources::SESSION_LANGUAGE_KEY])) {
....

我在最后一行获取了一条PHP错误消息。通过常量值进行数组索引访问有什么问题?

Notice: Use of undefined constant SESSION_LANGUAGE_KEY - assumed 'SESSION_LANGUAGE_KEY' in ...languages.php on line 17

3 个答案:

答案 0 :(得分:9)

在定义常量的类中,您必须将其引用为self::SESSION_LANGUAGE_KEY

答案 1 :(得分:2)

你应该用这个:

self::SESSION_LANGUAGE_KEY

而不是:

LanguageResources::SESSION_LANGUAGE_KEY

Prooflink:http://www.php.net/manual/en/language.oop5.constants.php

答案 2 :(得分:0)

抱歉,我的IDE没有对htdocs文件夹的写入权限,也没有将最新的源代码复制到目标目录(没有警告)。

适用于$_GET[LanguageResources::SESSION_LANGUAGE_KEY]以及$_GET[self::SESSION_LANGUAGE_KEY]

我收到了更多“通知”警报,代表某种“警告”。要停用它们,您必须修改php.ini并添加~E_NOTICE

error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE