2012-04-10 3 views
0

следующее не работает:PHP конкатенации строка classconstant присваивание массива

<?php 
class test{ 
    const t = 10; 
    public static $y = array('t' => self::t . 'hello'); 
} 
var_dump(test::$y); 
?> 

может кто-нибудь сказать мне, почему это так? :)

он терпит неудачу в ... => self :: t. 'hello') ... часть, где она, как швы, не может конкатенировать класс const в массиве().

, что означает, что оба следующих отлично работает:

public static $y = array('t' => self::t); 

и

public static $y = array('t' => 'hello'); 
+0

Всегда добавляйте сообщение об ошибке. И если вы вставьте его в поле поиска, даже, вы получите ок. 999 вопросов, которые похожи, если даже не такие, как ваши. – hakre

ответ

1

может кто-нибудь сказать мне, почему это так?

Конкатенация - это продукт времени выполнения. Начальные значения члена класса должны быть известны во время разбора.