Home  >  Article  >  Backend Development  >  Problem with php constant definition

Problem with php constant definition

WBOY
WBOYOriginal
2016-09-27 14:18:111422browse

<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! !

Reply content:

<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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn