2011-02-22 61 views
1

可能重複:
Include constant in string without concatenating如何使用字符串評估常量?

我怎樣才能得到一個常量字符串中的評估像變量?

$foo = "like"; 
define('BAR', 'fish'); 

// None of these give me 'I like to eat fish on Tuesday.' 
echo "I $foo to eat BAR on Tuesday."; 
echo "I $foo to eat {BAR} on Tuesday."; 
echo 'I $foo to eat BAR on Tuesday.'; 

// This works but is undesirable 
echo 'I $foo to eat '.BAR.' on Tuesday.'; 
+0

不知道這是可能的,但你可以定義一個變量並用它來代替它? – blanknamefornow 2011-02-22 21:30:17

+0

不合需要,但必要。振作起來。 (不同的安德魯!) – Andrew 2011-02-22 22:02:05

+0

這在SO上已經被覆蓋了好幾次,只是措辭有點不同(這就是爲什麼你在詢問時沒有看到它)。 – 2011-02-23 07:28:21

回答

-2

當然沒有辦法。並沒有必要。

+0

-1對你的答案沒有任何解釋,只是判斷。 – Andrew 2011-02-22 21:55:23

+0

@Andrew也沒有解釋你的問題。只是「不受歡迎的」判斷;) – 2011-02-22 22:44:10

+0

我很驚訝有一位19k代表的人會發布這樣一個無用的答案......實際上在查看你的個人資料後,看起來你提前兩步的方法會導致很多居高臨下的答案。 – 2011-04-15 23:08:51

2

我知道this'd作品(你可能已經知道的)的唯一方式是通過做:

<?php 
$foo = "like"; 
define('BAR', 'fish'); 
$constants = get_defined_constants(); 
echo "I $foo to eat {$constants['BAR']} on Tuesday."; 
?> 

它打印:

I like to eat fish on Tuesday. 
+0

我知道了,但是感謝你的放心。我考慮過這個選項,但它最終降低了代碼的可讀性。 – Andrew 2011-02-22 22:01:54

+0

它不僅減少了代碼的可讀性,還阻止了IDE檢測字符串中的無效常量。 – 2011-04-16 00:10:03