2010-02-10 3 views
6

Le due funzioni di stato funzionano correttamente e sono accessibili nei metodi di classe self::STATUS_ERROR e self::STATUS_OK.Come posso concatenare una costante e una variabile e memorizzarla in una costante di classe con PHP?

Il problema è uno di come interrompere il seguente errore durante il tentativo di definire la terza costante.

Parse error: syntax error, unexpected '.', expecting ',' or ';' in /home/sub/sub/directory/script.php

+0

Ho anche incontrato lo stesso problema. Beh, sembra un limite per me. Citato anche qui: http://bugs.php.net/bug.php?id=42355 –

+1

Il bug precedente è stato trasformato in un RFC, e questo è stato approvato per l'inclusione in v 5.6, dove questa funzionalità è ora disponibile: https://wiki.php.net/rfc/const_scalar_exprs. –

risposta

9

Non fanno. Le costanti sono costanti. Non puoi memorizzare nulla in loro.

È tuttavia possibile utilizzare una proprietà statica.

class My_Class { 
    public static $DB_TABLE; 
} 
My_Class::$DB_TABLE = TABLE_PREFIX . 'class_table'; 

Non è possibile farlo all'interno della dichiarazione, quindi si potrebbe preferire un metodo statico.

class My_Class { 
    public static function dbTable() { 
    return TABLE_PREFIX . 'class_table'; 
    } 
}