2009-10-14 29 views
16

我想在php中使用常量,但我也想把它放在雙引號內,如變量。這是可能嗎?在php中引用常量:「這是一個MY_CONSTANT」

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

顯然輸出 「你好,綜合測試儀」,但我真正想要的是一樣的東西: 「你好,世界」

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

。OUPUTS。

+1

[這裏有一個關於另一個有趣的方式來擴大在PHP定界符符號常量線索(HTTP://www.php。 net/manual/en/function.define.php#100449) – 2011-12-30 21:44:58

回答

14

對不起,這不是在PHP工作常量的方式。你可以把變量放在雙引號和heredocs中,但不是常量。

+1

常量不以這種方式工作。但是必須有一個解決方案........ – Bik 2014-06-11 08:08:37

1

沒辦法,除非你自己寫的字符串解析功能

1

我發現,當一個常量的點連接是一個問題時,使用sprintf來獲取我的字符串通常是我最終想要去的方式。

5

我建議,因爲你使用串聯:

  1. 當你使用一個變量爲雙引號字符串能見度不好;
  2. 當您使用雙引號字符串時,php可以緩慢處理;
  3. 你不使用一個常量到一個字符串中,因爲沒有任何分隔符到php知道什麼是常量。
+2

4.將HTML放入字符串更容易,因爲您無需繼續轉義雙引號。 (我知道你可以單引號的屬性值,但在我的OCD討厭!) – DisgruntledGoat 2009-10-14 00:55:23

+1

1.取決於語法突出顯示。 2.在某些環境和版本中情況正好相反(在6版中,據傳速度更快或更快)。 3.有效。 – 2009-10-14 01:00:38

+0

1.如果您使用的是非常基本的文本編輯器,可見性只會很差。就我個人而言,我發現過多的語法會導致可見性不佳2.某些版本的解析步驟可能較慢,執行速度相同。 – Matthew 2009-10-14 01:30:31

3

連接是要走的路。

除非你想要的做作,討厭的,低效的,邪惡的猴子的方法:

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