是否可以在具有函数的类中定义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的值
答案 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?的众多例子也应该有所帮助。