2012-12-04 16 views
0

這可能是不可能的,但我想知道是否有可能使用變量的值輸出定義的內容。使用變量來訪問定義內容

像這樣:

define("SEO_HOME", "Home name"); 
$var="SEO_HOME"; 
echo $var 

這將打印出來,當然 「SEO_HOME」。我怎樣才能讓它打印「家庭名稱」(使用變量$ var)?

編輯:更正的定義。

編輯: 我的所有問題他的,我將修改使用本網站定義,以確定所有頁面,例如:

define("CONTACT_PAGE","Please contact us"); 
define("INFO_PAGE","Some information about us"); 

我會需要添加自定義HTML標題在這些網頁上,該業主將能夠編輯。所以我想我會創建一個數據庫表(ID,頁面,標題),其中頁面將有CONTACT_PAGE,INFO_PAGE等,標題本身就是標題。

我們做出網站的所有者編輯頁面,我有這樣的:

//This would be an while mysql_fetch_assoc and not a multidimentional array, but for example this will work 
$titleArray=array(array("CONTACT_PAGE", "my title for contact page"),array("INFO_PAGE", "my title for info page")); 
?> 
<tr> 
    <td>Set title for: <?php echo $titleArray[0][0];?></td> 
    <td><input type="text" name="name" value="<?php echo $titleArray[0][1];?>" /></td> 
</tr> 
<tr> 
    <td>Set title for: <?php echo $titleArray[1][0];?></td> 
    <td><input type="text" name="name" value="<?php echo $titleArray[1][1];?>" /></td> 
</tr> 

這顯示了第一款TD - >設置標題:CONTACT_PAGE

而且我想它顯示 - >設置標題爲:請聯繫我們

希望這澄清我的懷疑。

+0

刪除」是$ var = 「seo_home」;應該是$ var = seo_home; – RezaSh

+0

想象$ VAR的價值來自DB,所以它是一個字符串:)我試着用EVAL玩弄於去年5分鐘,但沒有運氣 – tcardoso

+0

終於你的意思是你想把$ var在seo_home常量或seo_home到$ var? – RezaSh

回答

0

您可以使用constant function

mixed constant (string $name) 

回到依表示常量的值。

常量()在需要檢索常量值 但不知道名稱時非常有用。即它存儲在一個變量中,或者通過函數返回 。

該函數也可以與類常量一起使用。

<?php 
define("SEO_HOME", "Home name"); 
$var="SEO_HOME"; 
echo constant($var); 
+0

這正是我想要的:)非常感謝 – tcardoso

0
define(seo_home, "Home name"); 
$var=seo_home; 
echo $var; 

當你定義一個常量,要使用它,你只需要寫下它的名字。

順便說一句,通常給他們更高一些,而不是小寫。

0

與您的代碼錯誤是你調換的報價..

define(seo_home, "Home name") 
     ^------------- Quotes Missing 

$var="seo_home"; 
     ^--------------- There should be no quotes 

而且還瘦用大寫爲您的常量,除非你啓用CASE_INSENSITIVE選項來創建更可讀的代碼,因爲他們是大小寫敏感的.. See More Details

例子:

define("SEO_HOME", "Home name"); 
$var = SEO_HOME; 
echo $var; 
0

如果你這樣做

$var=seo_home; 

當你做echo $var;會顯示它,但是...你可以做echo seo_home;它會顯示,你不需要一個變量。