我在 PHP 中有这种情况,其中 include
在一台服务器上被遗漏,但在另一台服务器上没有(我没有设置服务器,所以我不能告诉你更多;我不是真正的 devops 人,所以这就是我在这里问的原因)。两台服务器上的代码相同,并且都运行带有 PHP FPM 5.5.9 的 Ubuntu 14.04。
这是一个例子:
文件1.php
<?php
var_export('1');
include_once('somedir/file2.php');
include_once('include.php');
?>
包含.php
<?php
var_export('2');
function foo() {}
?>
somedir/file2.php
<?php
var_export('3');
//notice it has the same name as include.php in the starting directory
include_once('include.php');
?>
somedir/include.php
<?php
var_export('4');
function foo() {}
?>
如果我导航到 file1.php,工作服务器将打印 1、3、2。如果我导航到“损坏”服务器上的 file1.php,我会收到一条错误消息,提示无法重新定义函数 foo。
我的“损坏”服务器上是否有一些设置导致它包含第二个包含?谢谢!
最佳答案
将其放在两个系统上的 file1.php 中:echo get_include_path();
看看会发生什么(tm)。
关于php - 包括/要求路径解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25924484/