繁体   English   中英

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

[英]PHP constant is sometimes not replaced by its defined value

我对代码产生间歇性的结果感到困惑。

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

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

BASE_URL是如下定义的常量:

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

大多数情况下,电子邮件中的链接格式正确,并且用域名替换常量。 但是,我们已经收到了对审阅电子邮件的答复,其中用户说该链接不适用于他们。 然后查看他们回复的电子邮件中的链接,然后该链接具有以下URL:

base_url/review?id=1234

现在这看起来很奇怪,因为代码会产生2个不同的结果。 造成此问题的原因可能是什么? 以前有没有经历过这样的事情?

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

除此之外,如果您无法对其进行跟踪,建议您将发送的链接记录到文件中,并查看发送该链接时获得的值。

定义在哪里发生? 这确实听起来像lupatus编写的内容,所以也许您在定义它之前先调用它。

我们正在猜测,因为这是101次调试:)

<?php echo base_url();?>

将以上代码替换为BASE_URL

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM