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

用类中的函数定义php常量值,php,arrays,class,constants,Php,Arrays,Class,Constants,是否可以在带有函数的类中定义php数组常量 编辑:“php数组变量”不是常量 我试过: 假设, 数组函数(字符串参数1,字符串参数2…) sublime中的调试器在self::$const行的断点后不显示$const的值。在PHPGetFoo[index]的形式访问它吗?在这种情况下,它看起来真的是一个单例,而不是一个常量,那么,您不想定义您的单例并将其保留在任何需要它的方法中吗? class Foo { public static function GetFoo() { retur

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

编辑:“php数组变量”不是常量

我试过:

假设, 数组函数(字符串参数1,字符串参数2…)


sublime中的调试器在self::$const行的断点后不显示$const的值。在PHP<5.6中,不能将数组作为常量

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

define('FOO', 'bar')

function getFoo() {
  return FOO;
}
但这并没有返回数组,这是一个相当愚蠢的例子

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

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

Foo::GetFoo();
或者,如果希望将函数作为对象实例的方法运行,则不会设置静态属性(这对我来说没有意义)


这有帮助吗?上的众多示例也会有所帮助。

“用函数定义常数”-这不是矛盾修饰法吗?@HoboSapiens不是。因为常量意味着它是不可变的,不需要在编译时定义它。请参阅@CharlieS。“这在一个类中似乎不起作用。”霍博萨皮恩斯说。我的意思是使用一个函数来定义一个常量或变量如果我在另一个公共静态函数中使用你的第二个方法中的数组,我会以$this->GetFoo[index]的形式访问它吗?在这种情况下,它看起来真的是一个单例,而不是一个常量,那么,您不想定义您的单例并将其保留在任何需要它的方法中吗?
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);