Heim > Artikel > Backend-Entwicklung > Problem mit der PHP-Konstantendefinition
<code>class testClass { const FRUIT = ['apple','orage']; }</code>
Kann die Konstante FRUIT hier als ['apple','orage'] definiert werden (das ist ein Array, richtig)? Bitte antworten Sie! !
<code>class testClass { const FRUIT = ['apple','orage']; }</code>
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
definierenzB:
<code> define('ANIMALS', [ 'dog', 'cat', 'bird' ]); echo ANIMALS[1]; // outputs "cat"` </code>
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>
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>
Einige IDEs unterstützen es jedoch nicht gut