2009-10-14 149 views
16

我想在php中使用常量,但我也想把它放在双引号内,如变量。这是可能吗?在php中引用常量:“这是一个MY_CONSTANT”

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

显然输出 “你好,综合测试仪”,但我真正想要的是一样的东西: “你好,世界”

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

。OUPUTS。

+1

[这里有一个关于另一个有趣的方式来扩大在PHP定界符符号常量线索(HTTP://www.php。 net/manual/en/function.define.php#100449) – 2011-12-30 21:44:58

回答

14

对不起,这不是在PHP工作常量的方式。你可以把变量放在双引号和heredocs中,但不是常量。

+1

常量不以这种方式工作。但是必须有一个解决方案........ – Bik 2014-06-11 08:08:37

1

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

1

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

5

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

  1. 当你使用一个变量为双引号字符串能见度不好;
  2. 当您使用双引号字符串时,php可以缓慢处理;
  3. 你不使用一个常量到一个字符串中,因为没有任何分隔符到php知道什么是常量。
+2

4.将HTML放入字符串更容易,因为您无需继续转义双引号。 (我知道你可以单引号的属性值,但在我的OCD讨厌!) – DisgruntledGoat 2009-10-14 00:55:23

+1

1.取决于语法突出显示。 2.在某些环境和版本中情况正好相反(在6版中,据传速度更快或更快)。 3.有效。 – 2009-10-14 01:00:38

+0

1.如果您使用的是非常基本的文本编辑器,可见性只会很差。就我个人而言,我发现过多的语法会导致可见性不佳2.某些版本的解析步骤可能较慢,执行速度相同。 – Matthew 2009-10-14 01:30:31

3

连接是要走的路。

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

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