Problem mit der PHP-Konstantendefinition

WBOY
Freigeben: 2016-09-27 14:18:11
Original
1439 Leute haben es durchsucht

<code>class testClass {
    const FRUIT = ['apple','orage'];
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

Kann die Konstante FRUIT hier als ['apple','orage'] definiert werden (das ist ein Array, richtig)? Bitte antworten Sie! !

Antwortinhalt:

<code>class testClass {
    const FRUIT = ['apple','orage'];
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

Kann die Konstante FRUIT hier als ['apple','orage'] definiert werden (das ist ein Array, richtig)? Bitte antworten Sie! !

Eine Konstante ist nur eine Größe, die nicht geändert werden kann, sie muss keine Zahl oder Zeichenfolge sein

PHP7 kann Array-Konstanten über defind()PHP70new-featres

definieren

zB:

<code>    define('ANIMALS', [
        'dog',
        'cat',
        'bird'
    ]);

echo ANIMALS[1]; // outputs "cat"`
</code>
Nach dem Login kopieren

PHP7 kann auch defind() entfernen und const direkt verwenden, um konstante Arrays zu definieren

Darüber hinaus unterstützt PHP7 auch Operationen zwischen Konstanten, z. B.: const A = 1; const B =3; const C = A B;

Ab PHP7 können Sie define verwenden, um konstante Arrays zu definieren:
define('APP1', array(1,2,3)); var_export(APP1);
In älteren PHP-Versionen können Sie das Array zunächst in einen String serialisieren, dann die Konstanten definieren und es dann deserialisieren bei Verwendung:
define('APP2', serialize(array(1,2,3))); var_export(unserialize(APP2));
Ab PHP 5.6 können Sie const auch verwenden, um konstante Arrays zu definieren:
const APP3 = array(1,2,3); var_export(APP3);

Const bedeutet, dass die Variable nach der Definition nicht mehr geändert werden kann. Nachdem das Array als const definiert wurde, können die darin enthaltenen Elemente nicht hinzugefügt oder subtrahiert werden.
Vor 5.6.0 verfügte PHP nicht über eine solche Funktion, Sie können sie jetzt verwenden

<code>/** @const */
private static $myArray = array(...);
</code>
Nach dem Login kopieren

stattdessen.
Diese Funktion wurde seit 5.6.0 hinzugefügt. Wenn dieser Code also ausgeführt werden soll, gelten bestimmte Anforderungen für die PHP-Version der Maschine.

Es scheint, dass Sie dies ab etwa 5.6 in einer Klasse definieren können

<code>class SomeClass {
    const FRUIT = ['apple','orage'];
}

// 取
echo SomeClass::FRUIT[0]; // apple</code>
Nach dem Login kopieren

Einige IDEs unterstützen es jedoch nicht gut

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage