我想在 PHP 中使用一个常量,但我也想像变量一样将它放在双引号内。这是可能吗?
define("TESTER", "World!");
echo "Hello, TESTER";
显然输出“Hello,TESTER”,但我真正想要的是:
$tester = "World!";
echo "Hello, $tester";
输出“你好,世界!”。
抱歉,这不是 PHP 中常量的工作方式。您可以将变量放在双引号和 heredocs 中,但不能放在常量中。
我建议您使用串联,因为:
串联是要走的路。
除非你想要那种做作、讨厌、低效、邪恶的猴子方式:
echo preg_replace("/TESTER/",TESTER,$original_content);
为任何可能觉得有用的人发帖,这样的事情会起作用:
<?php
// example code
define('AAA', '30V');
$constant = 'constant';
echo "{$constant('AAA')}"; //Echoes 30V
相信我,我也不相信这样的事情是可能的,但它是!在 tehplayground.com 上尝试一下,自己看看。
归功于想到它的人,以及发现它的我的同事(我认为他是在 stackoveflow 中做到的)。
没办法,除非你自己写字符串解析函数
我发现当一个常量的点连接是一个问题时,使用 sprintf 来获取我的字符串通常是我最终想要的方式。
或者,做
"this is " . MY_CONSTANT
或者
"this is " . constant("MY_CONSTANT");