2

別のファイルにある変数の値を取得する必要があります。include関数またはrequire関数を使用できることはわかっていますが、どちらの場合も、インクルードされたファイルに存在する出力全体が出力されます。では、別のファイルからの出力ではなく、変数の値のみを取得する方法はありますか?

4

3 に答える 3

3
ob_start();
include($filename);
ob_end_clean();

これで、変数がスコープ内で使用可能になります。

もちろん、出力が気になる場合は、それを保持することをお勧めします。

ob_start();
include($filename);
$output = ob_get_contents();
ob_end_clean();

これは、アプリ全体の設計者である場合は絶対に行わないように注意する必要があります。代わりに、すべての変数を1つのファイルに設定し、別の変数を使用して出力を生成します。理想的には、コントローラーが変数を設定し、ビュー/テンプレートが出力を行うMVCアーキテクチャーを調べます。

于 2012-06-29T16:20:39.867 に答える
0

以下はそれを行うことができます:

ob_start();
include(...);
ob_end_clean();

ob_start()は出力バッファリングを開始し、browser / cli/etcには何も送信されません。ファイルを含めます。ファイル内の変数が使用可能になり、すべてのエコーなどが表示されなくなります。

ob_end_clean()は、eraseの場合と同様にバッファをダンプし、メモリを解放している間は情報を表示しません。

于 2012-06-29T16:21:49.900 に答える
0

その値を取得して、3番目のファイルに入れます。includeそのファイルをファイル1と2に入れます。

つまり、アプリケーションの構造を改善して、個別にアクセスする必要があるものにアクセスできるようにします。

于 2012-06-29T16:25:27.270 に答える