Можно ли определить константу массива php в классе с помощью функции?
редактировать: «переменная массива php» не константа
Я пробовал:
предполагать,
массив func (строка param1, строка param2 …);
class A{
public static $const;
public function blah(){
self::$const = func('a','b','c',...);
}
}
отладчик в возвышенном не показывает значение для $ const после точки останова в строке self :: $ const
В 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 константы, содержащие массивы? должно помочь тоже.
Других решений пока нет …