我想在php中使用常量,但我也想把它放在双引号内,就像变量一样。这有可能吗?
define("TESTER", "World!");
echo "Hello, TESTER";
显然输出“Hello,TESTER”,但我真正想要的是:
$tester = "World!";
echo "Hello, $tester";
输出“你好,世界!”。
答案 0 :(得分:15)
抱歉,这不是PHP中常量的工作方式。您可以将变量放在双引号和heredocs中,但不能用常量。
答案 1 :(得分:5)
我建议您使用连接,因为:
答案 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");