这可能是不可能的,但我想知道是否可以使用变量的值输出定义的内容。
像这样:
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;设置标题:请与我们联系
希望这能澄清我的怀疑。
答案 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);