我在使用require
或require_once
调用后代码停止执行时遇到一些问题,我正在努力找出导致问题的确切原因。
我已经检查了文件是否存在并且可以读取(通过file_exists
和is_readable
),但是这两个似乎都是真的,所以我有点难过。
require_once('file1.php');
print('a');
$file = 'file2.php';
if (!file_exists($file)) { die('file does not exist'); }
if (!is_readable($file)) { die('cannot read file'); }
require_once($file);
print('b');
上面的代码只输出'a',之后什么也没有。
服务器上的另一个文件以相同的方式使用有问题的两个文件,没有问题。
还有什么我可以检查的吗?
任何帮助,将不胜感激。
编辑:
设置error_reporting(E_ALL)
不会改变输出。
将文件路径更改为同一目录中的空白文件会将输出更改为“ab”,表明 require 已经工作并表明它们是 的问题file2.php
,但是服务器上的另一个文件以完全相同的方式成功使用了这些文件。
运行php -l
file2.php 不会返回错误。
注释掉第一个要求没有任何区别。
编辑2:
问题在于调用class_exists
和版本 5.0 中的行为更改与自动加载有关。有问题的代码是在升级到 5.0 之前编写的。