2012-06-25 1 views
53

Eventuali duplicati:
Is it possible to declare an array as constantPHP - utilizzare array come classe costante

E 'possibile utilizzare un array come una classe costante nel PHP?

cioè

const MYARRAY = array('123', '234'); 

Se no perché?

+0

[si prega di utilizzare la funzione di ricerca prima di fare domande. ci aspettiamo che tu faccia ricerche.] (http://stackoverflow.com/questions/ask-advice) – Gordon

+11

Le costanti discusse duplicate create usando define(). Le regole per le costanti di classe non sono le stesse. Votazione per riaprire. –

+0

È possibile convertire un array in una stringa e memorizzarlo come una costante. Quando ne hai bisogno, basta riconvertirlo. Guarda nell'esempio (un) serialize: http://stackoverflow.com/questions/1290318/php-constants-contain-arrays – Armfoot

risposta

63

No non è possibile assegnare un array a PHP costante.

In http://www.php.net/manual/en/language.constants.syntax.php

costanti possono solo restituire valori scalari

Questa è la ragione.

valori scalari per gli esempi sono int, float, string

+0

Breve ma chiaro, e ancora perfettamente spiegato, grazie! –

+38

Questo è ora disponibile in PHP 5.6 http://php.net/manual/en/migration56.new-features.php –

+0

Annotato perché non è più valido in 5.6+ – piersb

67

No, non è possibile.

Tuttavia, è possibile dichiararlo come proprietà statica.

public static $MYARRAY = array('123', '234'); 

Aggiornamento --------------- -------------------------- ---

La serie di array è disponibile da PHP 5.6.

php.net/manual/en/migration56.new-features.php

+7

Questo non sarebbe lo stesso di una costante anche se il valore potrebbe essere modificato – Martin

+0

@Martin Sì, è vero, ma non è possibile dichiarare una costante con un array. – xdazz

+0

Può uno statico essere dichiarato privato almeno? – Martin