PHP常量有时不会被其定义的值替换

时间:2014-03-07 11:30:30

标签: php codeigniter constants

我对这个问题感到很困惑,因为代码会产生间歇性的结果。

我有一个在CodeIgniter中开发的PHP应用程序,该软件的一部分发送带有链接的评论电子邮件。链接在代码中声明如下,此链接用于构建HTML电子邮件正文:

$link = BASE_URL.'/review?id='.$review_id;

BASE_URL是一个常量定义如下:

define('BASE_URL', 'http://www.domain-name.com');

大多数情况下,电子邮件中的链接格式正确,常量将替换为域名。但是,我们已经对评论电子邮件做出了回复,其中用户说该链接对他们不起作用。然后查看他们回复的电子邮件中的链接,该链接就是这个网址:

base_url/review?id=1234

现在这似乎是非常奇怪的行为,因为代码会产生2个不同的结果。造成这种问题的原因是什么?有没有经历过这样的事情?

2 个答案:

答案 0 :(得分:1)

我建议您首先将框架本身用于base_url();

除此之外,如果你无法追踪它,我建议记录你发送到文件的链接,看看它发送链接时得到的值。

定义在哪里发生?这听起来确实像lupatus写的那样,所以也许你在定义它之前调用它。

我们几乎猜测这是101调试:)

答案 1 :(得分:-1)

<?php echo base_url();?>

用BASE_URL替换上面的代码