いくつかの古いPHPスクリプトをクリーンアップしながら、私は変数を使用しようとするとrequire/include文で奇妙な振る舞いに気がつきました。XAMPPでrequireまたはinclude文で変数を使用できないのはなぜですか?
ライブサーバー上で、次のコードは正常に動作します。..
私のXAMPPのインストール((基本パッケージ)バージョン1.6.7)に..but<?php
$test = "http://localhost/elearning/trunk/mypage.php";
require "$test";
?>
私は次のエラーが表示されます
警告:require()[function.require]:C:\ Documents and Settings \ username \ Desktop \ xampp-win32-1.6.7 \ xampp \ htdocs \ elearning \ trunk \ testのサーバー設定でURLファイルアクセスが無効になっています。 .php on line 22
警告:必要(http://localhost/elearning/trunk/mypage.php)[function.require]:f C:\ Documents and Settings \ username \ Desktop \ xampp-win32-1.6.7 \ xampp \ htdocs \ elearning \ trunk \ test.php 22行目の適切なラッパーはありません。
Fatalエラー:require()[function.require]:オープンに失敗しました 'http://localhost/elearning/trunk/mypage.php'(include_path = '.; C:¥Documents and Settings¥username¥Desktop¥xampp-win32-1.6.7¥xampp¥php¥pear¥') C:¥Documents and Settings¥username¥Desktop¥xampp-win32-1.6.7¥xampp¥htdocs¥elearning¥trunk¥test.php 22行目
http://localhost/elearning/trunk/mypage.phpをコピーして(直接エラーから)私のブラウザに、mypage.phpが読み込まれます。これは私の設定や私のアプローチでは間違っていますか?
マイクロ最適化のノート: '「$テスト」'と 'まったく同じ結果に$ test'量単に変数をそのまま使うのではなく、PHPが文字列を解析しなければならないので、前者だけが無駄になります。そして本当に良い理由がなければ、最初にそのような中間変数を使う必要はありません。 – deceze
"$ test"と$ testのヒントをありがとう! 私の防衛では、中間変数は例のためだけです(ただし、それほど少なくすることはできません)。現実の世界では、$ CFG-> wwwroot(またはそのようなもの)を設定ファイルから取り出そうとしています。 – Zoe