Windows上のphpの奇妙な問題...私のアプリケーションは、設定ファイルをロードし、自動ロードを登録し、初期化などを行う「コア」ファイルをコアファイルの上部にロードします。これは、別のディレクトリからコアファイルをインクルードすると、現在のディレクトリ内のすべてに対して正常に機能しますが、構成ファイルのインクルードは黙って無視されます... 誰かがこれを前に見たことがありますか?
/webroot/core.php
<?php
require_once "config.php";
//register autoloads
//do some initialization... standard stuff
?>
/webroot/config.php
<?php
define("WEB_ROOT","/webroot");
define("DB_USER","root");
// ... more stuff...
?>
/webroot/admin/index.php
<?php
require_once("../dbconnect.php");
echo WEB_ROOT;
// print string literal WEB_ROOT rather than value in config.php
?>
私の理解では、ファイル操作は要求を行うファイルのディレクトリに相対的であり、require_once("config.php") は core.php に相対的なファイルを選択すべきではありませんか? このコードは、Mac または Linux では期待どおりに機能しますが、Windows ではまったく機能しません (完全なパスまたは ../ を使用するように要件を変更すると、機能します)。
本当の狂気は、require_once("config.php") がエラーをスローしないのに、内部のコードが実行されないことです!