使用变量来访问定义内容

时间:2012-12-04 18:30:07

标签: php variables

这可能是不可能的,但我想知道是否可以使用变量的值输出定义的内容。

像这样:

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

这将打印出“SEO_HOME”课程。如何让它打印“Home name”(使用变量$ var)?

编辑:更正了定义。

编辑: 我的所有问题是他,我编辑的网站使用定义来识别所有页面,例如:

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

我需要在这些页面上添加自定义HTML标题,所有者将能够进行编辑。所以我想我会创建一个带有(id,page,title)的数据库表,其中页面将有CONTACT_PAGE,INFO_PAGE等,而title将是标题本身。

现在为网站所有者制作一个编辑页面,我将会:

//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 - &gt;设置标题为:CONTACT_PAGE

我希望它显示 - &gt;设置标题:请与我们联系

希望这能澄清我的怀疑。

4 个答案:

答案 0 :(得分:0)

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

当你定义一个常量时,要使用它,你只需写下它的名字。

顺便说一下,通常给它们更高的而不是小写的。

答案 1 :(得分: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;

答案 2 :(得分:0)

如果你这样做

$var=seo_home;

当你做echo $var;时会显示它,但是......你可以做echo seo_home;并且它会显示,你不需要变量。

答案 3 :(得分:0)

您可以使用constant function

 mixed constant ( string $name )
  

返回 名称 指示的常量值。

     如果您需要检索常量的值,

constant()非常有用,   但不知道它的名字。即它存储在变量中或返回   通过功能。

     

此函数也适用于类常量。

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