2 Stimmen

Als was sind vordefinierte Konstanten zu definieren?

Ich habe eine Datenbankklasse, die automatisch eine Verbindung zur Datenbank einrichtet und einige grundlegende Eingabefilterung und whatnot tut. Ich habe vor, einige vordefinierte Konstanten zu setzen, um das Verhalten der Klassenmethoden anzupassen. Welche Werte sollte ich für die Konstanten festlegen? Da die Werte nie direkt angesprochen oder verglichen werden, sondern nur im Kontext des Konstantennamens, spielt der Wert überhaupt eine Rolle?

Eine Strategie, auf die ich gestoßen bin, besteht darin, eine Konstante auf einen Bitwert zu setzen, so dass bitweise Operatoren verwendet werden können, um Konstanten zu kombinieren. In diesem Fall sieht es nicht so aus, als ob diese Funktionalität notwendig wäre, aber man weiß ja nie.

Oft erhalte ich Meldungen wie

Notice: Use of undefined constant CONSTANT_VALUE - assumed 'CONSTANT_VALUE'

Ist dies die Behandlung der Konstante wie die Zeichenfolge 'CONSTANT_VALUE' oder die Konstante CONSTANT_VALUE? Sollte ich den Wert meiner Konstanten als gleichnamige Zeichenketten definieren, um dies zu kompensieren? Dies tritt auf, wenn ich Konstanten verwende, von denen ich weiß, dass sie irgendwann definiert werden, wie DOCUMENT_ROOT.

Gibt es eine bessere Praxis als diese beiden?

2voto

chaos Punkte 118918

Wenn Sie diese Meldung erhalten, ist die betreffende Konstante no an der Stelle definiert, an der der Code ausgeführt wird, und sie wird als Zeichenkette behandelt 'CONSTANT_VALUE' .

Wenn die Werte einer Menge von Konstanten, die Sie definieren, völlig willkürlich sind und nicht bitmaskierbar sein müssen, verwenden Sie die Folge von positiven ganzen Zahlen.

0voto

palako Punkte 3229

Wenn die Konstanten nicht außerhalb der Datenbankklasse verwendet werden sollen, brauchen Sie keine globalen Konstanten zu definieren, sondern können Klassenkonstanten verwenden:

http://uk.php.net/manual/en/language.oop5.constants.php

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X