PHP-创建一个类,设置一个数组变量并将其用于全局

PHP-创建一个类,设置一个数组变量并将其用于全局,php,class,global,Php,Class,Global,我需要一些帮助来解决一个我不知道如何开始的情况,甚至不知道去哪里寻找 我有一个很大的*.ini文件(用于语言),我只想在php文档开始时解析一次,然后在文档中的任何地方使用结果 我想,我需要一门课,比如: class Language{ private language = array(); function get( $string ){ return $this->language[ $string ]; } function get

我需要一些帮助来解决一个我不知道如何开始的情况,甚至不知道去哪里寻找

我有一个很大的*.ini文件(用于语言),我只想在php文档开始时解析一次,然后在文档中的任何地方使用结果

我想,我需要一门课,比如:

class Language{
    private language = array();

    function get( $string ){
        return $this->language[ $string ];
    }

    function getLanguage(){
        /* get and parse *.ini file once */
        $result = array;

        /* set language */
        $this->language = $result;
    }
}
因此,从理论上讲,在php文档开始时,该类以某种方式调用getLanguage()并设置语言数组

Language::getLanguage();
然后,在php文档的其余部分中的任何地方,特别是在其他类中(不作为函数param发送),获取certaing language数组元素,而无需再次解析*.ini文件

class AClass{
    function __construct(){
        echo Language::get( $certain_string );
    }
}
new AClass;
任何建议都很受欢迎


谢谢。

要使用::调用方法,需要将其声明为静态

class Language {
    private static $lang = null; // you won't be able to get this directly
    public static function getLanguage(){
        if (self::$lang) { // you can check with is_null() or !is_array()
            return self::$lang; 
        }
        else { /* parse ini file here and set it in self::$lang */ }
    }
}
Language::getLanguage();
我想这就是你需要的。如果您需要进一步调整,请告诉我


PS:如果您声明
private function\uuuu construct(){}
private function\uuu clone(){}
,这将是一个经典的方法。

如果您需要使用Language::getLanguage();您应该将此函数定义为静态函数

public static function getLanguage(){
        /* get and parse *.ini file once */
        $result = array;

        /* set language */
        $this->language = $result;
    }
但我建议使用“单例”模式:

因此,您可以使用此函数调用此类的方法,如下所示:

Language::getInstance()->get('str');
Language::getInstance()->getLanguage();

我明白了,所以基本的解决方案是使用静态方法,我做了一个测试,这正是我需要的。谢谢你的快速回答谢谢你的快速回答。。静态方法是解决方案。我将记录有关单例模式的内容
Language::getInstance()->get('str');
Language::getInstance()->getLanguage();