2010-02-10 15 views
6
class My_class 
{ 
    const STATUS_ERROR = 0; 
    const STATUS_OK = 1; 
    const DB_TABLE = TABLE_PREFIX . 'class_table'; 
}

Die beiden Status-Consts funktionieren einwandfrei und können innerhalb der Klassenmethoden self::STATUS_ERROR und self::STATUS_OK problemlos aufgerufen werden.Wie kann ich eine Konstante und eine Variable verketten und in einer Klassenkonstante mit PHP speichern?

Das Problem besteht darin, wie der folgende Fehler ausgelöst wird, wenn ich versuche, die dritte Konstante zu definieren.

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

+0

ich über das gleiche Problem auch kam. Nun, sieht für mich eine Einschränkung aus. Auch hier erwähnt: http://bugs.php.net/bug.php?id=42355 –

+1

Der obige Fehler wurde in einen RFC umgewandelt, und dies wurde für die Aufnahme in Version 5.6 genehmigt, wo diese Funktion jetzt verfügbar ist: https://wiki.php.net/rfc/const_scalar_exprs. –

Antwort

9

Sie dies nicht tun. Konstanten sind konstant. Sie können nichts darin speichern.

Sie können jedoch eine statische Eigenschaft verwenden.

Sie können dies nicht innerhalb der Deklaration tun, daher bevorzugen Sie vielleicht eine statische Methode.

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