2011-11-10 10 views
2

たとえば、php/common.phpを含むインデックスページがあります。全体のPHPディレクトリを含めます

foreach (glob("functions/*.php") as $filename) 
{ 
    include $filename; 
} 

上記のコードはcommon.phpです。だから、index.phpcommon.phpが含まれており、一般的には、私は、エラーメッセージCall to undefined functionを取得index.phpから(php/functionsフォルダのファイルのうちの1つに位置する)いくつかの関数を呼び出すしようとするとcommon.php

と同じフォルダにfunctionsフォルダからすべてのファイルを含める必要があります。代わりに以下のコードを使用してください(foreachループに問題があるかどうかをテストするため)

include "functions/ipdetect.php"; 

結果が見つかりませんでした。なぜforeachが私の場合にはうまくいかないのですか? PHPがcommon.phpindex.phpに埋め込んだ後にforeachを起動する可能性がありますか?

+0

include( "$ filename。" "php");それを試しましたか?あなたは$ filenameをエコーし​​ましたか?前にglob()を使ったことはありません。 – onatm

+0

が試行されました。同じこと – heron

+1

@onatmしないでください! – Simone

答えて

2

初心者の方は、include_onceを使用すると、2回物事を含めることができなくなり、エラーが増え、軽微なオーバーヘッドはほとんどありません。

foreach (glob("functions/*.php") as $filename) 
{ 
    include_once $filename; 
} 

「機能」フォルダは、ルートの下にあるか、または一般的な「php」フォルダの下にありますか? PHPの下でこの変更が必要になります場合:

foreach (glob("php/functions/*.php") as $filename) 
{ 
    include_once $filename; 
} 

編集が正しくない、について説明を削除 - ダレンコメントを調理読み:

@DEVastorそれは働いていなかったあなたのglob()だったので、直接には作品を含め、あなたのinclude()ではなく。

+0

はい、それは一番上にあります。 – heron

+0

'common.php'と' functions'フォルダは 'php'という名前の同じフォルダにあります。したがって、ルートフォルダは 'index.php;のようになります。 php'です。 'php'フォルダの内容は' common.php;のようになります。関数 ' – heron

+0

ああyip - ちょうど気づいた、私は思う、私の修正を見てよ! – Louis

2

私のために働きます(下のコードを参照してください - これらは完全なファイルです)。 コマンドラインから "php index.php"を実行すると "Hello World!"が出力されます。 ヒント:いくつかのグローバルコードをインクルードされているファイルの1つに入れてください(下記のa.phpを参照、エコーのコメントを外してください)。ファイルが含まれているかどうかを教えてください。 他の人が言っているように、あなたが良い理由がない限り、常にinclude_onceを使用してください。

--- index.phpを----

<?php 
include "common.php"; 
echo f()."\n"; 
?> 

--- --- common.phpの

<?php 
foreach (glob("functions/*.php") as $filename) 
{ 
    include $filename; 
} 
?> 

---機能/ a.php ---

<?php 
//echo "*** In a.php ***\n"; 
function f(){ 
return "Hello World!"; 
} 
?> 
+0

ohh .. listen私は、 'common.php'と' functions'フォルダは 'php'という名前の同じフォルダにあります。したがって、ルートフォルダは 'index.php;のようになります。 php'です。 'php'フォルダの内容は' common.php;のようになります。関数 ' – heron

関連する問題