为什么'包括'不在单独的文件中包含已定义的常量?

时间:2018-02-20 15:47:44

标签: php variables xampp include constants

我在php中包含文件有问题。

我有2个文件" settings.php"和" test.php" (托管在localhost中,包含所有xampp的默认设置和" allow_url_include = 1")。

现在。这是文件" settings.php":

的内容
<?
   define("TEST_INFO","Lorem ipsum");
?>

这是包含&#34; setting.php&#34;:

的文件

&#34; test.php的&#34;:

<?
include("http://127.0.0.1/projectFolder/settings.php");

echo(TEST_INFO);
?>

&#34; test.php&#34;的结果是:

  

注意:使用未定义的常量TEST_INFO - 假设&#39; TEST_INFO&#39;在   第4行的C:\ xampp \ htdocs \ projectFolder \ test.php TEST_INFO

&#34;包括&#34;函数不会发出任何错误或警告,就好像它已正确执行,但包含文件中定义的常量(或任何变量)不起作用。

如果我尝试包含文件&#34; setting.php&#34;没有所有网址,它可以正常工作。 include("settings.php");

但我需要它的工作原理如下:include("http://127.0.0.1/projectFolder/settings.php");

感谢。

1 个答案:

答案 0 :(得分:3)

您正在包含来自网址的资源。

  1. 第一个脚本中的PHP向URL发出HTTP请求
  2. 运行define的PHP(在第二个脚本中)在服务器上执行
  3. 输出通过HTTP发送到include()
  4. 输出包含在第一页
  5. define语句在完全不同的脚本中执行(可能在不同的服务器上!)。

    如果您想在当前脚本的上下文中执行PHP,那么您必须 include 本地文件而不是 HTTP URL