ホームページ > バックエンド開発 > PHPチュートリアル > PHP の require に関する質問

PHP の require に関する質問

WBOY
リリース: 2016-06-13 12:48:53
オリジナル
897 人が閲覧しました

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 フォーラムが提供するプラグイン拡張機能をベースに、署名ファイル ツールを作成し、技術的な交流を歓迎します :)
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート