使用类中的函数定义php常量值

时间:2015-02-10 21:45:39

标签: php arrays class constants

是否可以在具有函数的类中定义php数组常量?

编辑:" php数组变量"不恒定

我试过了:

假设, array func(string param1,string param2 ...);

class A{

    public static $const;

    public function blah(){
        self::$const = func('a','b','c',...);
    }
}

sublime中的调试器在self :: $ const行的断点之后没有显示$ const的值

1 个答案:

答案 0 :(得分:0)

在PHP< 5.6你不能把数组作为常量。

如果您希望通过函数返回常量,您只需执行以下操作:

define('FOO', 'bar')

function getFoo() {
  return FOO;
}

但是这并没有返回一个数组,这是一个非常愚蠢的例子。

我认为你真正想做的是从类的静态方法返回一个数组,如:

class Foo {
  public static function GetFoo() {
    return array(1, 2, 3);
  }
}

Foo::GetFoo();

或者如果你想把这个函数作为一个对象实例的方法运行,你就不会设置一个静态属性(这对我来说没有意义)。

class Foo {
  private $foo = array();

  public function getFoo($arg1, $arg2) { // not sure what your arguments are for if this is intended to be a "constant"...
    $this->foo = array(...)
    return $this->foo
  }
}

$someFoo = new Foo();
$someFoo->getFoo(1, 2);

这有帮助吗? PHP Constants Containing Arrays?的众多例子也应该有所帮助。