有没有办法在PHP中定义常量数组?

时间:2010-02-11 01:12:15

标签: php

有没有办法在PHP中定义常量数组?

4 个答案:

答案 0 :(得分:8)

define('SOMEARRAY', serialize(array(1,2,3)));

$is_in_array = in_array($x, unserialize(SOMEARRAY));

这是最接近数组常量的。

答案 1 :(得分:6)

不,这是不可能的。从手册:Constants Syntax

  

常量中只能包含标量数据(布尔值,整数,浮点数和字符串)。可以将常量定义为资源,但应该避免,因为它可能会导致意外的结果。

如果您需要设置一组已定义的常量,请考虑创建一个类并使用class constants填充它。手册中略有修改的示例:

class MyClass
{
const constant1 = 'constant value';
const constant2 = 'constant value';
const constant3 = 'constant value';

  function showConstant1() {
    echo  self::constant1 . "\n";
  }
}

echo MyClass::constant3;

另请查看GhostDog发布的链接,这是一个不错的解决方法。

答案 2 :(得分:2)

不认为你可以。但你可以随时尝试searching

答案 3 :(得分:2)

你不能,但是你可以在一个类中定义静态数组,它会为你提供相同的服务,而不是FOO你写的Foo :: $ bar。