Iki şeyi ayırt etmek gerekir:
- Eğer dahil dosyanın çıkışını (
echo
, print
, ...) yakalamak ve bir değişken çıkış (dize) kullanmak istiyor musunuz?
- Eğer dahil dosyaları belirli dönüş değerlerini ve host komut bir değişken olarak kullanmak istiyor musunuz?
Lütfen dahil dosyaları yerel değişkenler her zaman host yazısının geçerli kapsamı taşınacak - Bu unutulmamalıdır. Sen birine bu özelliklerin tümünü birleştirebilirsiniz:
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"
Konfigürasyon dosyalarını kullanırken özellikle return
-özellik kullanışlı geliyor.
config.php
return array(
'host' => 'localhost',
....
);
app.php
$config = include 'config.php'; // $config is an array
EDIT
Çıkış tamponları kullanırken performans cezası ile ilgili sorunuza cevap bulmak için, ben sadece bazı hızlı test yaptım. 1.000.000 ob_start()
ötelenmiş ve $o = ob_get_clean()
benim Windows makinede (PHP için belki değil en iyi çevre) üzerinde yaklaşık 7.5 saniye sürebilir ilgili. Ben performans etkisi oldukça küçük sayılabilecek gerektiğini söylemek istiyorum ...