Home > Article > Backend Development > Problem with php constant definition
<code>class testClass { const FRUIT = ['apple','orage']; }</code>
Can the constant FRUIT here be defined as ['apple','orage'] (this is an array, right)? Shouldn't FRUIT be a number or a string? Please answer! !
<code>class testClass { const FRUIT = ['apple','orage']; }</code>
Can the constant FRUIT here be defined as ['apple','orage'] (this is an array, right)? Shouldn't FRUIT be a number or a string? Please answer! !
Constant is just a quantity that cannot be changed, it does not have to be a number or a string
PHP7 can define array constants through defind()PHP70new-featres
eg:
<code> define('ANIMALS', [ 'dog', 'cat', 'bird' ]); echo ANIMALS[1]; // outputs "cat"` </code>
PHP7 can also remove defind() and directly use const to define constant arrays
In addition, PHP7 also supports operations between constants, eg: const A = 1; const B =3; const C = A + B;
Starting from PHP7, you can use define to define constant arrays:define('APP1', array(1,2,3)); var_export(APP1);
In older versions of PHP, you can first serialize the array into a string and then define the constant , just deserialize it when using it: define('APP2', serialize(array(1,2,3))); var_export(unserialize(APP2));
PHP can also be defined with const starting from 5.6 Constant array:const APP3 = array(1,2,3); var_export(APP3);
const means that the variable cannot be changed after it is defined. Once the array is defined as const, the elements in it cannot be added or subtracted.
Before 5.6.0, PHP did not have such a feature, you can use it at this time
<code>/** @const */ private static $myArray = array(...); </code>
instead.
This feature has been added since 5.6.0, so if this code wants to run, there are certain requirements for the PHP version of the machine.
It seems that starting around 5.6, you can define it in a class like this
<code>class SomeClass { const FRUIT = ['apple','orage']; } // 取 echo SomeClass::FRUIT[0]; // apple</code>
However, some IDEs do not support it well