1

googlesmtp経由でメールを送信する方法を調べました。

PEARは、その仕事をするのに適切なライブラリとして登場しました。

このコードスニペットには

require_once "Mail.php";

このファイルはどこにありますか?__autoload()関数はいくつかのトリックを作りますか?クラスのフォルダパスに合わせて変更すると、魔法が壊れてしまう可能性がありますか?

4

2 に答える 2

2

ここでこのような質問をする前に、マニュアルをチェックする習慣を身につけてください。それはこれをカバーしています:

ファイルは、指定されたファイルパスに基づいてインクルードされます。指定されていない場合は、include_pathが指定されます。ファイルがinclude_pathに見つからない場合、includeは、失敗する前に、呼び出し元のスクリプト自体のディレクトリと現在の作業ディレクトリを最終的にチェックインします。include構文は、ファイルが見つからない場合に警告を発します。これはrequireとは異なる動作であり、致命的なエラーが発生します。

__autoload()includeおよび/またはとは別の概念requireです。まだ定義されていないクラスを使おうとすると自動的に呼び出される関数です。includeこれは、プロジェクトのファイル構造に基づいて、必要なファイルを決定するための独自のアルゴリズムを定義するために、自分で作成する関数です。

定義できる関数__autoload()は1つだけなので、コードでの使用も避けてください。__autoload()代わりに、代わりに使用する必要がありますspl_autoload_register()。この関数は他の関数の名前を取り、それを関数のリストに追加します。未知のクラスが呼び出されると、探しているクラスを定義するファイルが見つかるまで、それぞれが呼び出されます。

于 2013-01-23T14:34:36.660 に答える
1

インクルードパスhttp://php.net/manual/de/ini.core.php#ini.include-pathで確認されます

于 2013-01-23T14:34:15.987 に答える