2009-10-14 4 views
16

Ich möchte eine Konstante in PHP verwenden, aber ich möchte es auch in Anführungszeichen wie eine Variable setzen. Ist das überhaupt möglich?zitieren Konstanten in PHP: "Dies ist ein MY_CONSTANT"

define("TESTER", "World!"); 
echo "Hello, TESTER"; 

gibt offensichtlich "Hallo, TESTER", aber was ich wirklich will ist so etwas wie: "Hallo, Welt"

$tester = "World!"; 
echo "Hello, $tester"; 

ouputs.

+1

[hier ist ein Hinweis über eine andere interessante Art und Weise KONSTANTEN in php heredoc Notation zu erweitern] (http: //www.php. net/manual/de/function.define.php # 100449) –

Antwort

14

Leider schreiben, das ist nicht die Art und Weise Konstanten in PHP arbeiten. Sie können Variablen in doppelte Anführungszeichen und heredocs setzen, nicht aber in Konstanten.

+1

Konstanten funktioniert nicht auf diese Weise. Aber es muss eine Lösung für dieses sein ........ – Bik

1

keine Möglichkeit, wenn Sie Ihre eigene String-Parsing-Funktion

1

Ich habe festgestellt, dass, wenn Punkt-Verkettung einer Konstante ist ein Problem, sprintf mit meinem String zu erhalten, ist in der Regel so, wie ich am Ende zu gehen.

5

Ich empfehle Ihnen Verkettung zu verwenden, weil:

  1. Wenn Sie eine Variable in eine doppelte Anführungszeichen Zeichenfolge verwenden, um Ihre Sichtbarkeit ist nicht gut;
  2. Wenn Sie einen doppelten Anführungsstring verwenden, kann der PHP langsam verarbeiten;
  3. Sie verwenden keine Konstante in eine Zeichenkette, weil kein Trennzeichen zum php hat, weiß, was die Konstante ist.
+2

4. Es ist einfacher, HTML in Strings zu setzen, weil Sie die doppelten Anführungszeichen nicht halten müssen, um zu entkommen. (Ich weiß, dass Sie Attributwerte nur mit einem Anführungszeichen versehen können, aber die OCD in mir hasst das!) – DisgruntledGoat

+1

1. Hängt von Syntaxhervorhebung ab. 2. Das Gegenteil ist in einigen Umgebungen und Versionen wahr (in 6 wird gemunkelt, um genauso schnell oder schneller zu sein). 3. Gültig –

+0

1. Die Sichtbarkeit ist nur schlecht, wenn Sie einen einfachen Texteditor verwenden. Persönlich finde ich Überschusssyntax führt zu schlechter Sichtbarkeit. 2. Vielleicht ein langsamer Parse-Schritt in einigen Versionen, gleiche Ausführungsgeschwindigkeit. – Matthew

3

Verkettung ist der Weg zu gehen.

Sofern Sie die hokey, bös, ineffizient, böse Affe Weise wollen:

echo preg_replace("/TESTER/",TESTER,$original_content);