引用php中的常量:“这是一个MY_CONSTANT”

时间:2009-10-14 00:16:51

标签: php constants quoting

我想在php中使用常量,但我也想把它放在双引号内,就像变量一样。这有可能吗?

define("TESTER", "World!");
echo "Hello, TESTER";

显然输出“Hello,TESTER”,但我真正想要的是:

$tester = "World!";
echo "Hello, $tester";

输出“你好,世界!”。

7 个答案:

答案 0 :(得分:15)

抱歉,这不是PHP中常量的工作方式。您可以将变量放在双引号和heredocs中,但不能用常量。

答案 1 :(得分:5)

我建议您使用连接,因为:

  1. 当您将变量用于双引号字符串时,您的可见性不佳;
  2. 当你使用双引号字符串时,php可以缓慢处理;
  3. 你没有在字符串中使用常量,因为没有任何分隔符给php知道什么是常量。

答案 2 :(得分:3)

连接是要走的路。

除非你想要这种笨拙,低效,邪恶的猴子方式:

echo preg_replace("/TESTER/",TESTER,$original_content);

答案 3 :(得分:1)

没办法,除非你编写自己的字符串解析函数

答案 4 :(得分:1)

我发现当一个常量的点连接是一个问题时,使用sprintf来获取我的字符串通常是我想要的方式。

答案 5 :(得分:1)

发布给任何可能觉得有用的人,像这样的东西会起作用:

<?php
// example code
define('AAA', '30V');
$constant = 'constant';
echo "{$constant('AAA')}"; //Echoes 30V

相信我,我不相信这样的事情是可能的,但它是!在 tehplayground.com 上试一试,亲眼看看。

感谢发现它的人,以及发现它的同事(我认为他是在 stackoveflow 中做到的)。

答案 6 :(得分:0)

或者,

"this is " . MY_CONSTANT

"this is " . constant("MY_CONSTANT");