php const arrays php const arrays php php

php const arrays


Your code is fine - arrays cannot be declared constant in PHP before version 5.6, so the static approach is probably the best way to go. You should consider marking this variable as constant via a comment:

/** @const */private static $myArray = array(...);

With PHP 5.6.0 or newer, you can declare arrays constant:

const myArray = array(...);


Starting with PHP 5.6.0 (28 Aug 2014), it is possible to define an array constant (See PHP 5.6.0 new features).

class MyClass{    const MYARRAY = array('test1','test2','test3');    public static function getMyArray()    {        /* use `self` to access class constants from inside the class definition. */        return self::MYARRAY;    } }/* use the class name to access class constants from outside the class definition. */echo MyClass::MYARRAY[0]; // echo 'test1'echo MyClass::getMyArray()[1]; // echo 'test2'$my = new MyClass();echo $my->getMyArray()[2]; // echo 'test3'

With PHP 7.0.0 (03 Dec 2015) array constants can be defined with define(). In PHP 5.6, they could only be defined with const. (See PHP 7.0.0 new features)

define('MYARRAY', array('test1','test2','test3'));


I came across this thread looking for the answer myself. After thinking I would have to pass my array through every function it was needed in. My experience with arrays and mysql made me wonder if serialize would work. Of course it does.

define("MYARRAY",     serialize($myarray));function something() {    $myarray= unserialize(MYARRAY);}