ホームページ > バックエンド開発 > PHPチュートリアル > PHPにファイルをインポートするにはどのような方法がありますか? PHPでファイルを導入する4つの方法(コード)を紹介

PHPにファイルをインポートするにはどのような方法がありますか? PHPでファイルを導入する4つの方法(コード)を紹介

不言
リリース: 2023-04-03 11:04:01
オリジナル
4217 人が閲覧しました

PHP にファイルをインポートするにはどのような方法がありますか? PHP インポート ファイルには 4 つのステートメントがあります: include、require、include_once、require_once PHP インポート ファイルの具体的な例を見てみましょう。

基本構文

require: require 関数は通常、PHP スクリプトの先頭に配置され、実行されます。 PHP の前に まず、require で指定されたインポートされたファイルを読み込み、インポートされたスクリプト ファイルをインクルードして実行してみます。 require の仕組みは PHP の実行効率を高めるためのもので、同じ Web ページ内で一度解釈されると、2 回目は解釈されなくなります。ただし、同様に、インポートされたファイルを繰り返し解釈しないため、PHP でファイルを導入するためにループまたは条件ステートメントを使用する場合は include を使用する必要があります。

include: は、PHP スクリプト内のどこにでも (通常はプロセス コントロールの処理部分に) 配置できます。 include で指定したファイルに対して PHP スクリプトを実行すると、インクルードされて実行が試行されます。この方法により、プログラムの実行プロセスを簡略化できます。同じファイルに 2 回目に遭遇した場合でも、PHP は再度それを再解釈します。 include の実行効率は、require の実行効率よりもはるかに低くなります。同時に、インポートされたファイルにユーザー定義関数が含まれている場合、 PHP では、解釈プロセス中に関数定義が繰り返されるという問題が発生します。

require_once/include_once: これらの関数は、それぞれ require/include と同じです。違いは、実行時に、ターゲット コンテンツが以前にインポートされているかどうかを最初にチェックすることです。インポートされているため、同じコンテンツが再度導入されることはありません。

#お互いの違い

include と require:

include には戻り値がありますが、require には戻り値がありません

include がファイルのロードに失敗すると、警告 (E_WARNING) が生成され、エラー発生後もスクリプトは実行を継続します。そのため、実行を継続して結果をユーザーに出力したい場合には include を使用します。

//test1.php
<?php
include &#39;./tsest.php&#39;;
echo &#39;this is test1&#39;;
?>

//test2.php
<?php
echo &#39;this is test2\n&#39;;
function test() {
    echo &#39;this is test\n&#39;;
}
?>

//结果:
this is test1
ログイン後にコピー

require は、ロードが失敗すると致命的なエラー (E_COMPILE_ERROR) を生成し、エラーの発生後にスクリプトの実行が停止します。通常、後続のコードがロードされたファイルに依存する場合に使用されます。

//test1.php
<?php
require &#39;./tsest.php&#39;;
echo &#39;this is test1&#39;;
?>

//test2.php
<?php
echo &#39;this is test2\n&#39;;
function test() {
    echo &#39;this is test\n&#39;;
}
?>
ログイン後にコピー

結果:

PHPにファイルをインポートするにはどのような方法がありますか? PHPでファイルを導入する4つの方法(コード)を紹介

include と include_once:

include でロードされたファイルは、重複する場合、 include ステートメントがある限り、(繰り返しロードが発生する可能性がある場合でも) 1 回ロードされます。 include_once がファイルをロードするとき、前のコードがロードされているかどうかを判断する内部判断メカニズムが存在します。ここで注意する必要があるのは、include_once はファイルの内容ではなく、同じパスのファイルが以前にインポートされているかどうかに基づいて判断されることです (つまり、インポートされる 2 つのファイルの内容が同じです)。 、 include_once を使用すると、依然として 2 つが導入されます)。

//test1.php
<?php
include &#39;./test2.php&#39;;
echo &#39;this is test1&#39;;
include &#39;./test2.php&#39;;
?>

//test2.php
<?php
echo &#39;this is test2&#39;;
?>

//结果:
this is test2this is test1this is test2


//test1.php
<?php
include &#39;./test2.php&#39;;
echo &#39;this is test1&#39;;
include_once &#39;./test2.php&#39;;
?>

//test2.php
<?php
echo &#39;this is test2&#39;;
?>

//结果:
this is test2this is test1


//test1.php
<?php
include_once &#39;./test2.php&#39;;
echo &#39;this is test1&#39;;
include &#39;./test2.php&#39;;
?>

//test2.php
<?php
echo &#39;this is test2&#39;;
?>

//结果:
this is test2this is test1this is test2


//test1.php
<?php
include_once &#39;./test2.php&#39;;
echo &#39;this is test1&#39;;
include_once &#39;./test2.php&#39;;
?>

//test2.php
<?php
echo &#39;this is test2&#39;;
?>

//结果:
this is test2this is test1
ログイン後にコピー

require と require_once: include と include_once と同じ違いです。

読み込み時の実行処理

1. include(require)文からphpスクリプトモードを終了(htmlコードモードに入る)

2. include ステートメントで設定したファイル内のコードを読み込み、実行してみます

3. html モードを終了し、php スクリプト モードに再度入り、後続のスクリプトの実行を続行しますプログラム

//test1.php
<html>
<body>
主文件开始位置:
<?php
    echo "<br> 主文件中位置 A";
    include "./test2.php";    //要载入的文件
    echo "<br> 主文件中位置 B";
?>
<br> 主文件结束位置
</body>
</html>

//test2.php
<br> 被载入文件位置 1
<?php
echo "<br> 被载入文件位置 2";
?>
<br> 被载入文件位置 3
ログイン後にコピー

結果:

PHPにファイルをインポートするにはどのような方法がありますか? PHPでファイルを導入する4つの方法(コード)を紹介#分析:

PHPにファイルをインポートするにはどのような方法がありますか? PHPでファイルを導入する4つの方法(コード)を紹介

##ロード中のパスの問題

#相対パス:

現在の Web ページ ファイルの場所を基準にして、ロードされたファイルの場所を見つけます。
./  表示表示当前位置,即当前网页文件所在的目录
. . /  表示上一级位置,即当前网页文件所在目录的上一级目录

//例如:
include "./test2.php";
require "../../test3.html";
ログイン後にコピー

絶対パス:

ローカル絶対パスとネットワーク絶対パス

ローカル絶対パス:

ローカル ルート ディレクトリから、対応するディレクトリにインポートするファイルが見つかるまで、階層ごとに再帰的に検索します。
include "C:/PHP/test/test2.php";
ログイン後にコピー
絶対パスはプロジェクトの移植性や保守性に役立たないことは誰もが知っているので、コードに絶対パスを直接記述することは一般的にはまれですが、絶対パスを使用する必要がある場合はどうすればよいでしょうか。パス? ? PHP にはマジック定数 __DIR__ とグローバル配列 $_SERVER があり、その使用法は次のとおりです:

<?php
define(&#39;DS&#39;) or define(&#39;DS&#39;,DIRECTORY_SEPARATOR);

echo "使用绝对路径引入(方法一)";
include __DIR__ . DS . &#39;test2.php&#39;;

echo "使用绝对路径载入方法(方法二)";
$root = $_SERVER[&#39;DOCUMENT_ROOT&#39;]; // 获得当前站点的根目录
include $root.DS.&#39;node_test&#39;.DS.&#39;inAndRe&#39;.DS. &#39;test2.php&#39;;
?>
ログイン後にコピー

絶対ネットワーク パス:

URL を介してファイルにリンクします。サーバーは、URL で指定されたファイルが実行後に返されます。
include "http://www.lishnli/index.php"
ログイン後にコピー

パスなし:

ファイル名のみが指定され、パス情報は指定されません。 . このとき、PHPは現在のWebページのディレクトリにあるので、ファイルを検索し、同名のファイルがあればそれを実行してインポートします。

需要注意:无论采用哪种路径,必须要加上文件后缀名,这四种文件载入方式不能识别无后缀的文件。

//test1.php
include "./test2.php";
//结果:this is test2


//test1.php
include "./test2";
//结果:
ログイン後にコピー

返回值的比较

上文说道include有返回值,而require无返回值

对于include,如果载入成功,有返回值,返回值为1;如果载入失败,则返回false.

对于require,如果载入成功,有返回值,返回值为1;如果载入失败,无返回值。

//test1.php
<?php

$a = include "./test2.php";
var_dump($a);
echo "<br>";

$b = include "./test2.phps";
var_dump($b);
echo "<br>";

$c = require "./test2.php";
var_dump($c);
echo "<br>";

$d = require "./test2.phps";
var_dump($d);

?>
ログイン後にコピー

输出:

PHPにファイルをインポートするにはどのような方法がありますか? PHPでファイルを導入する4つの方法(コード)を紹介

当文件中有return:

当被载入文件中有return语句时,会有另外的机制,此时return语句的作用是终止载入过程,即被载入文件中return语句的后续代码不再载入。return语句也可以用于被载入文件载入时返回一个数据。

//test1.php
<?php
$a = include "./test2.php";
echo "<br>";
var_dump($a);
?>


//test2.php
//该文件中有return语句
<?php
$b = &#39;test2&#39;;
echo "被载入的文件:A 位置";
return $b;
echo "<br 被载入的文件: B 位置";
?>
ログイン後にコピー

结果:

相关推荐:

php引入css文件出错,但是网页已经有样式了

php 字符串写入文件或追加入文件(file_put_contents)

以上がPHPにファイルをインポートするにはどのような方法がありますか? PHPでファイルを導入する4つの方法(コード)を紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート