我的目录结构如下:
- 测试
- 脚本
- 测试类.php
- 测试子目录
- 其他子目录
- 包括1.php
- 包含2.php
- 包含测试.php
- 其他子目录
- 脚本
以下是每个文件的代码:
testClasses.php:
<?php
echo __FILE__."<br/>";
包括1.php:
<?php
include_once("include2.php");
include_once $_SERVER['DOCUMENT_ROOT'] . "/test/scripts/testClasses.php";
incude2.php:
<?php
include_once("/test/scripts/testClasses.php");
包括Test.php:
<?php
include_once($_SERVER['DOCUMENT_ROOT'] . "/TEST/scripts/testClasses.php");
include_once("include1.php");
var_dump(get_included_files());
var_dump(get_include_path());
var_dump(__FILE__);
echo "PHP Version: ".phpversion().PHP_EOL;
运行 PHP 5.4.3 时,我看到以下输出: PHP 5.4.3 output
运行 PHP 7.4.8 时,我看到以下输出: PHP 7.4.8 output
两台服务器都在 Windows 机器上运行。
testClass.php 文件在 PHP 7.4.8 版本中包含两次,因为包含在两个版本上都有不同的大小写,即使它是同一目录中的同一个文件。如果 testClass.php 有一些类声明,则会抛出错误。有没有办法解决这个问题,所以我不必在整个代码中的包含语句中更改大小写?