2013-05-22 151 views
1

我需要/包含一個文件來從外部軟件中將配置值提取到我正在開發的文件中。PHP將文件包含到自定義的「名稱空間」中

是否有可能以某種方式通過include/require處理外部php文件,並將其中的所有變量加載到數組中或至少將其設置爲自定義名稱空間的類型以防止其重置現有變量?

外部應用程序很舊,使用普通的PHP和變量賦值爲運行做好準備。

實施例:

$db_type = 'mysql'; 
$db_user = 'hello'; 
$db_pass = 'world'; 
$charset = 'UTF-8'; 
+0

它被稱爲作用域。 – sectus

回答

6

可以包括一個函數的內部此代碼。所有這些變量都將在本地範圍內。

function get_old_data() { 
    include 'old.php'; 

    // do whatever you want with these variables 

} 
+0

太好了,謝謝!完全忘了函數有自己的本地範圍。 – ChrJantz

0

您可以使用返回內部包含文件。

可以在包含文件中執行return語句,以便終止該文件中的處理並返回到調用它的腳本。

Include

例子:

// config.php 
return array('db_type' => 'mysql', 
    'db_user' => 'hello', 
    'db_pass' => 'world', 
    'charset' => 'UTF-8',); 

然後使用它像這樣

$config = include 'config.php'; 

即使這樣

$connection = new Connection(include 'config.php'); 
+0

感謝您的意見 - 我已經知道這種方式,但正如我所說這是一個現有的外部應用程序,我無法修改該文件,終止在配置文件中簡單返回數組的能力。 – ChrJantz

1

我假設你知道配置的名稱瓦爾要從外部配置使用。

您可以創建一個函數,在該函數中包含文件,從變量中構建數組,然後可以返回給調用者。

在這種情況下,外部文件將在函數的本地作用域中執行,並且不應該重寫外部變量。

function loadconfig() { 
    include 'external.php'; 
    // do calculations and build var_array 
    return $var_array; 
} 
相關問題