有没有办法在PHP中定义常量数组?
答案 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。