2012-12-04 15 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;它会显示,你不需要一个变量。