PHP の require に関する質問
1. PHP で require を使用してフォルダー内のすべてのファイルを含めるにはどうすればよいですか?
require("./folder/*") は機能しません。PHP は Java と同じくらい柔軟で便利ではないでしょうか?
名前は定期的に認識されないのでしょうか?パターン認識?
2.同じクラスを 2 回要求する必要はありませんか?
ファイル名: A_Dao.class.php
関数: A.class
の基本的な操作が含まれています
A_Dao.class.php
require("DBConnection.class.php");
...
...
...
?>
別のファイル: B_Dao.class.php
関数: B.class
の基本的な操作が含まれています
B_Dao.class.php
require("DBConnection.class.php");
...
...
...
?>
A と B.class は概念から抽象化されたエンティティです。
ServiceA.class.php
require("./dao/A_Dao.class.php");
require("./dao/B_dao.class.php");
...
...
...
?>
ServiceA.class.php
を実行します
「致命的なエラー: C:Program FilesApache Software FoundationApache2.2htdocsapplicationdaoDBConnection.class.php の 3 行目でクラス DBConnection を再宣言できません」
どうしたの?
同じ (DBConnection.class.php) を繰り返し要求できないのはなぜですか?
(Java のように) コンパイラはこれを自動的に処理しませんか?
-----解決策---------なぜ require(*) をするのですか?
require は、すべてのターゲット ファイルを現在のファイルに挿入します。 * を許可すると、ディレクトリ内のすべてのファイルが挿入されるため、ファイルが非常に大きくなります。
2 番目の質問:
require_once
C/C では、同じファイルを繰り返しインクルードすることはできません。
------解決策---------php インクルードは C 言語に似ています。ページが実行されると、一度インクルードされます。
これがサポートされれば、効率に大きな影響を与えると思います
Java の import java.io.*; とは異なり、コンパイル後に使用されるライブラリのみがインポートされ、.class サイズには影響しません
-----解決策----------- - --------require("./folder/*") は、Web サーバーが受信するたびにフォルダー内のすべてのファイルをロードするため、サーバーの負荷が増加します。その場合、サーバーはリクエストに耐えることができません。
PHP ではインクルードは 1 回のみ許可されます。require_once を使用すると、繰り返しの require を避けることができます。
------解決策---------------------- ----------Autoload を使用できます
-----解決策------ ---require_once ()
-----解決策---------------------- -------1. それに比べて、Java は「シンボルレベル」のインクルードと言えますが、PHP では include/include_once/require/require_once に関係なく、したがって、PHP がワイルドカードをサポートしていないことは理解できます。 「フォルダー内のすべてのプログラム ファイルを含める」という効果を確実に得たい場合は、scandir() または同様のメソッドを使用して、それらをたどって含めることができます。これは複雑ではありません。 「必要」であれば、効率的かどうかは関係ありません。
2. require_once を使用するだけです。 1階と3階の兄弟が言ったことは不正確です。 PHP/C/C はすべて、複数のインクルードを許可します。 PHP では、関数とクラスを「繰り返し定義」できないという理由だけで、繰り返しインクルードするとエラーが報告されることがよくあります。
――――――――――――――――――――――――――――――――――
[img=http://csdnimg.cn/bbs/m/i/red_1.gif]メダル[/img][img=http://csdnimg.cn/bbs/m/i/ yellow_1.gif]メダル[/ img][img=http://csdnimg.cn/bbs/m/i/blue_1.gif]メダル[/img] メダル...いつ入手できます...
―――――――――――――――――――――――――――――――――
CSDN フォーラムが提供するプラグイン拡張機能をベースに、署名ファイル ツールを作成し、技術的な交流を歓迎します :)