Heim  >  Artikel  >  Backend-Entwicklung  >  Problem mit der PHP-Konstantendefinition

Problem mit der PHP-Konstantendefinition

WBOY
WBOYOriginal
2016-09-27 14:18:111418Durchsuche

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

Antwortinhalt:

<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

definieren

zB:

<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

Stellungnahme:
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