2017-08-15 159 views
0

兩個文件是互相依賴的:PHP:包括文件依賴對方

FILE1:

$var1 = 'Straw ' . $var2; 

FILE2:

$var2 = ' berry'; 
$var3 = $var1; 

FILE3:

// this file should include FILE1 and FILE2 

應該怎麼去包括FILE1 d FILE2在FILE3中確保三個變量適當填充的方式?

謝謝。

+3

這是一個循環依賴。這只是糟糕的設計。如果兩個文件相互依賴,請將它們放在同一個文件中。 –

回答

1

由於FILE 1包含FILE 2使用variable,FILE 1應該是includeð首次在文件3.因此文件3會是這樣的

include ("file1.php"); 
include ("file2.php"); 

但由於變量是互相依賴的,爲什麼除非你有一些理由,否則不要將它們放在同一個文件中。

注:var2會在文件1.未定義所以我的建議是把兩個變量是在一個文件中互相依賴。因此文件1的是這樣的

$var2 = ' berry'; 
$var1 = 'Straw ' . $var2; 

接檔2

$var3 = $var1; 

然後你就如上include

+1

這兩個文件都使用彼此的變量,因此無論首先包含哪個文件,其中一個變量都是未定義的。 –

+1

謝謝@MagnusEriksson沒有注意到這一點。 –

+0

非常感謝@Oke Tega。在這種情況下,我不會完全控制變量的順序。但是,如果我可以,我會將你的帖子標記爲答案。 – camursm

1

實際上,由於您的設計,您將會收到有關未定義變量的警告,因爲文件1需要$var2而文件2需要$var1

而是做這樣的事情:

$var2 = 'berry'; 
$var1 = 'Straw ' . $var2; 
$var3 = $var1; 

最多可以到不同的文件,只要他們被稱爲按上述順序拆分這些。

+0

謝謝@texalate。這可能是一個解決方案。在這個例子中,我不能控制變量的順序。 – camursm

0

非常感謝大家的意見。

可以做@texelate和@Oke Tega建議並按照正確的順序放置變量,然後將它們分配到不同的文件中。

但正如@Magnus Eriksson指出的那樣,這是循環依賴和糟糕的設計,它根本無法完成。

+1

如果@ texelate的解決方案解決了您的問題,那麼請接受該答案,而不是編寫自己的問題... –

+0

問題是,我無法控制變量的順序,因此本文。 – camursm

+0

很高興我們可以幫助,但這不是你的問題的答案,也不應該作爲答案發布。你可以評論這一點。如果它有幫助,請接受一個答案。 –