次の 2 つのことを区別する必要があります。
echo
インクルード ファイルの出力 ( 、 、...)をキャプチャし、print
その出力を変数 (文字列) で使用しますか?
- インクルードされたファイルから特定の値を返し、それらをホストスクリプトの変数として使用しますか?
インクルード ファイル内のローカル変数は、常にホストスクリプトの現在のスコープに移動されます。これは注意が必要です。これらすべての機能を 1 つに組み合わせることができます。
include.php
$hello = "Hello";
echo "Hello World";
return "World";
host.php
ob_start();
$return = include 'include.php'; // (string)"World"
$output = ob_get_clean(); // (string)"Hello World"
// $hello has been moved to the current scope
echo $hello . ' ' . $return; // echos "Hello World"
-return
機能は、特に構成ファイルを使用する場合に便利です。
config.php
return array(
'host' => 'localhost',
....
);
app.php
$config = include 'config.php'; // $config is an array
編集
出力バッファーを使用した場合のパフォーマンスの低下に関する質問に答えるために、簡単なテストを行いました。の 1,000,000 回の反復とob_start()
それに対応する$o = ob_get_clean()
処理は、私の Windows マシンで約 7.5 秒かかります (おそらく、PHP にとって最適な環境ではありません)。パフォーマンスへの影響は非常に小さいと考えるべきだと思います...