2010-02-11 27 views

Respuesta

6

No, no es posible. Del manual: Constants Syntax

Solo los datos escalares (booleanos, enteros, flotantes y de cadena) pueden estar contenidos en constantes. Es posible definir constantes como un recurso, pero se debe evitar, ya que puede causar resultados inesperados.

Si necesita establecer un conjunto definido de constantes, considere crear una clase y llenarla con class constants. Un ejemplo ligeramente modificada del manual:

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

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

echo MyClass::constant3; 

También puedes ver el enlace GhostDog ​​publicado, es una buena solución.

2

no creo que puedas. Pero siempre puedes intentar searching.

+0

El voto a favor no está justificado, el enlace apunta a un muy buen recurso. –

+0

puede revisar su respuesta? Existe una contradicción aparente entre "no creo que se pueda" y la referencia "Esta clase proporciona una solución alternativa que también se puede usar para declarar valores de matriz como constantes". –

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

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

Eso es lo más cercano a una matriz constante.

+0

Gracias: lo hizo y funcionó muy bien define ("DEF_ARR", serializar (matriz ("1", "a", "From.ME.to.YOU"))); foreach (unserialize (DEF_ARR) as $ k => $ v) { \t echo "Clave:". $ K. "VALOR:". $ V. "\ N"; } –

2

No puede, pero puede definir la matriz estática en una clase y le servirá exactamente igual, solo que en lugar de FOO escribiría Foo :: $ bar.

Cuestiones relacionadas