我想在 PHP 中使用常量,但我也想将它像变量一样放在双引号内。这是可能吗?

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

显然输出“你好,测试者”,但我真正想要的是这样的:

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

输出“你好,世界!”。

有帮助吗?

解决方案

对不起,这不是常量在PHP中的工作方式。你可以把变量在双引号和here文档而不是常量。

其他提示

我建议您使用串联,因为:

  1. 当您在双引号字符串中使用变量时,您的可见性不好;
  2. 当你使用双引号字符串时,php 处理速度会很慢;
  3. 您不会在字符串中使用常量,因为没有任何分隔符让 php 知道常量是什么。

级联是要走的途径。

除非你想要的做作,讨厌的,低效的,邪恶的猴子的方式:

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

没办法,除非你自己写的字符串解析功能

我发现,当一个恒定的点串联是一个问题,使用的sprintf让我的字符串是通常我想要的到底是要走的路。

可替换地,做

"this is " . MY_CONSTANT

"this is " . constant("MY_CONSTANT");
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top