Vous avez créé un tableau statique, pas un tableau constant. Les variables statiques sont mutables ; les constantes sont immuables. Votre code n'est pas mauvais, mais il ne fait pas ce que vous voulez qu'il fasse.
En PHP 5.6, vous pouvez déclarer const
réseaux. Veuillez consulter mon explication précédente .
Peut-être que vous voulez quelque chose comme ça :
class MyClass
{
const MY_ARRAY = array('test1','test2','test3');
public function getMyArray()
{
return MY_ARRAY;
}
}
Notez que les constantes n'ont pas de $
préfixe, qui indique leur immuabilité. $foo
est une variable ; FOO
n'est pas. De plus, les noms des constantes prennent toujours la majuscule, du moins dans les langages de programmation auxquels j'ai été exposé. Ceci n'est pas imposé par le compilateur ; il s'agit simplement d'une convention de style de codage (presque ?) universelle. Mots clés de la visibilité public
, protected
y private
ne s'appliquent pas aux constantes. Enfin, static
peut ou non s'appliquer selon que vous voulez ou non que la fonction soit static
.
1 votes
Ce n'est pas constant ? c'est seulement statique... imho vous pouvez manipuler le tableau si vous le pointez à travers la méthode... je ne pense pas qu'il soit possible de déclarer un type non-primitif comme constant en php...
0 votes
Je sais que ce n'est pas constant, c'est le but de ma question. Est-ce que la seule façon d'imiter un tableau avec un comportement constant
3 votes
À partir de PHP 5.6.0 (28 août 2014), il est possible de définir une constante de tableau ( see http://stackoverflow.com/a/30031923/1873197