Problem with php constant definition

WBOY
Release: 2016-09-27 14:18:11
Original
1438 people have browsed it

<code>class testClass {
    const FRUIT = ['apple','orage'];
}</code>
Copy after login
Copy after login

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>
Copy after login
Copy after login

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>
Copy after login

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>
Copy after login

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>
Copy after login

However, some IDEs do not support it well

Related labels:
php
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template