0

我在制作静态数组时遇到了一些麻烦,将类的一些静态属性作为静态数组的键,如下所示:

class A {

    private $ambito; //will be filled with an element of the static $ambitos

    public static $municipal = 1;
    public static $provincial = 2;
    public static $regional = 3;

    /*array para declarar los posibles ambitos de visualizacion de una empresa*/
    private static $ambitos = array( 
                                   self::$municipal => "Municipal", 
                                   self::$provincial => "Provincial", 
                                   self::$regional => "Regional"
                              );



    public static function getAmbitos()
    {
        return self::$ambitos;
    }
}

问题是我不能在静态数组中使用 self:$municipal,因为它会引发错误,我只能使用文字整数(我在数据库中保存的方式)

我正在使用交响乐 2.0。

谢谢!

4

2 回答 2

3

你也可以在那里使用常量。

class A {

    const DEFAULT_MUNICIPAL = 1;

    // ...

    public static $municipal = self::DEFAULT_MUNICIPAL;

    // ...

    private static $ambitos = array( 
        self::DEFAULT_MUNICIPAL => "Municipal", 
        // ...
    );

    // ...
}
于 2013-04-11T10:22:10.603 回答
0

您不能在另一个静态变量中引用静态变量(因为它们将同时被解析)

于 2013-04-11T10:21:13.943 回答