从其他类函数调用静态函数是行不通的

时间:2016-03-09 05:22:47

标签: php

我正在尝试实现静态配置数据的目标,我可以在任何我想要的文件中从数组中获取配置项。我已经将函数设置为静态,但它仍然说无法找到类?我是PHP的新手,所以帮帮我......

Index.php:

include(ROOT . '/application/library/yoda/settings.class.php');

if (class_exists('Settings')) {
    Settings::setPublic('testpublic', 'This is a test setting for the public category.');
}

设置类:

class Settings
{
    static private $protectedSettings = array(); // For DB / passwords etc
    static private $publicSettings = array(); // For all public strings such as meta stuff for site

    /*public function __construct() {
        $this->protectedSettings = array();
        $this->publicSettings = array();
    }*/

    public static function getProtected($key) {
        return isset(self::$protectedSettings[$key]) ? self::$protectedSettings[$key] : false;
    }

    public static function getPublic($key) {
        return isset(self::$publicSettings[$key]) ? self::$publicSettings[$key] : false;
    }

    public static function setProtected($key,$value) {
        self::$protectedSettings[$key] = $value;
    }

    public static function setPublic($key,$value) {
        self::$publicSettings[$key] = $value;
    }
}

错误显示在下面的代码中...当我调用showConfig()

class template {

    public function showConfig() {
        exit(Settings::getPublic('testpublic'));
    }
}

调用showConfig()时会显示以下错误...

  

致命错误:班级'设置'找不到

1 个答案:

答案 0 :(得分:0)

确保在包含模板类的文件中包含Settings类文件。

除此之外,代码看起来很好并且应该正常工作。