這工作得很好:PHP新手:不能用恆定的定義陣列
$entity->field_time[LANGUAGE_NONE][0] = array(
'value' => date_format($date),
'timezone' => 'UTC',
);
但我需要使它更通用,允許不同的字段名稱。所以,我嘗試使用常數:
define('FIELD_TIME', 'field_time');
$entity->FIELD_TIME[LANGUAGE_NONE][0] = array(
'value' => date_format($date),
'timezone' => 'UTC',
);
但這並不定位正確的數組名,這應該是[field_time] [LANGUAGE_NONE] [0]
我也試過:
define('FIELD_TIME', 'field_time');
$entity->constant('FIELD_TIME')[LANGUAGE_NONE][0] = array(
'value' => date_format($date),
'timezone' => 'UTC',
);
但是,拋出:解析錯誤:語法錯誤,意外'['
我在做什麼錯?
「常量的值聲明數組;只有標和允許空值標值是整數,浮點數,字符串或布爾值。可以定義資源常量,但不建議這樣做,並可能導致不可預知的行爲。「 – Flosculus
@Flosculus他不想使用常量作爲數組,但它是值。假設你有一個帶有property(array)='public $ _arr = array(...);'和另一個文件define('BLA','_arr');'的類。 OP想要做'$ obj - > _ arr = ...'但是使用常數值=>'$ obj-> BLA =' –
如果'FIELD_TIME'是類的常量,不應該像' EntityClass :: FIELD_TIME'? – Flosculus