Windows上のPHPで奇妙な問題が発生しました...私のアプリケーションは、設定ファイルを読み込み、autoloadsを登録し、初期化などを行うコアファイルを読み込みます。include_once( "config.php ");私は別のディレクトリからコアファイルをインクルードすると、現在のディレクトリ内の何にでもうまく動作しますが、設定ファイルのインクルードを無視します。require_onceが無視されました
/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")でファイルを選択してはいけませんlative to core.php?このコードは、私がMacやLinuxで期待していたように動作しますが、Windows上ではまったく動作しません(完全なパスを使用するように変更した場合や、動作します)。
本当の狂気はrequire_once( "config.php")はエラーをスローしませんが、内部のコードは実行されません!
誰もがindex.phpのがロードされていることに気づきましたconfig.phpまたはcore.phpではなくdbconnect.php?あなたもdbconnect.phpの内容を表示する必要があります... –