2012-06-25 10 views
53

Powiel możliwe:
Is it possible to declare an array as constantPHP - jak używać tablicę klasy stałej

Czy można używać tablicy jako klasa stałej w PHP?

tj

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

Jeśli nie, dlaczego?

+0

[należy użyć funkcji wyszukiwania, zanim zadasz pytanie. oczekujemy, że wykonasz badania.] (http://stackoverflow.com/questions/ask-advice) – Gordon

+11

Duplikat omówionych stałych utworzonych za pomocą define(). Reguły dla stałych klas nie są takie same. Głosowanie w celu ponownego otwarcia. –

+0

Możesz nieco przekonwertować tablicę na ciąg znaków i zapisać ją jako stałą. Kiedy go potrzebujesz, po prostu go przekonwertuj. Spójrz w (nie) przykład serializacji: http://stackoverflow.com/questions/1290318/php-constants-containing-arrays – Armfoot

Odpowiedz

63

No nie można przypisać tablicę do PHP stała.

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

Stałe mogą oceniać tylko na wartościach skalarnych

To jest powód.

wartości skalarne dla przykładów są int, float, string

+0

Krótkie, ale jasne i wciąż doskonale wytłumaczone, dzięki! –

+38

To jest teraz dostępny w PHP 5.6 http://php.net/manual/en/migration56.new-features.php –

+0

obniżona, ponieważ nie jest już prawdą w 5.6+ – piersb

67

Nie, nie możesz.

Ale możesz to zadeklarować jako nieruchomość statyczną.

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

--------------- Aktualizacja -------------------------- ---

Array const jest dostępny w PHP 5.6.

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

+7

To nie będzie to samo co stała, ale wartość może zostać zmieniona – Martin

+0

@Martin Yep, to prawda, ale nie możesz zadeklarować stałej z tablicą. – xdazz

+0

Czy przynajmniej statyczny może zostać uznany za prywatny? – Martin

Powiązane problemy