2012-08-07 39 views
0

所以我已經看到了一些關於將變量從文件傳遞到PHP的爭議。做這件事的「最佳方式」是什麼?PHP變量從file1到filesA-Z

目前,我有這樣的

FILE 1的設置:

<? $foo = 'somethingCoolHere'; 
$bar = 'nothingLameThere'; ?> 

文件:

<? include('/link/to/file1.php'); 
printf('stuff' .$foo. 'stuff'); ?> 

文件B:

<? include('/link/to/file1.php'); 
printf('stuff' .$foo. 'stuff'); 
printf('stuff' .$bar. 'stuff'); ?> 

這工作,'好吧'。但是如果有人想擴大我的收入,他們可能需要記住在頂線加入「包含」來讓變量起作用。有比現在更好的做法或「最佳實踐」方式嗎?

+1

沒關係。這就是MediaWiki的web配置文件和工作原理。如果它不能修復它 – 2012-08-07 03:05:20

+0

所以,如果有人拿我已經得到的代碼,並想添加文件,它們應該足夠聰明,以添加'include('/ link/to/file1.php');到頂部? – Xhynk 2012-08-07 03:07:28

+0

是的。這是它應該如何工作。 – 2012-08-07 03:08:11

回答

0

個人(不知道其他人是否同意),我會在包含文件時使用絕對路徑。我會把這些路徑放在常量中。爲什麼?因爲如果我需要改變一個路徑(比如我移動了一個文件或者其他東西),我就不必通過每個文件來改變路徑,而是隻需要定義常量的文件。

一個例子:

constant.php

define('file1' , 'abolute/path/to/file1'); 
define('fileA' , 'abolute/path/to/fileA'); 
define('fileB' , 'abolute/path/to/fileB'); 

然後包括在任何文件constant.php你需要使用常量:

something.php:

include_once($_SERVER['DOCUMENT_ROOT'].'/constant.php');//we now have access to our constants 
include_once(fileA); 
include_once(fileB); 
include_once(file1); 

我不是說這種方法是最好的做法,但它只是我會在j中做的事情關於我所有的項目。而且我也看不出有什麼問題。

+0

我一直在使用絕對路徑。雖然我甚至沒有想過「定義」功能。這將有助於清理我的一些代碼。所以爲了擴大改善我所得到的,我會接受這:) – Xhynk 2012-08-07 03:16:16

1

我也遵循類似的模式爲我的項目,但有一點我想指出你的代碼。假設如果多個程序員正在處理一個大型項目,那麼很難跟蹤在不同文件中定義的變量。所以我總是確保關聯數組用於對相似的值進行分組,而不是對每個變量使用單獨的變量。你可以考慮使用以下結構。

FILE 1:

<?php 
    $file1['foo'] = 'somethingCoolHere'; 
    $file1['bar'] = 'nothingLameThere'; 
?> 

文件:

<?php 
    include('file1.php'); 
    printf('stuff' .$file1['foo']. 'stuff'); 
?> 

文件B:

<? 
    include('file1.php'); 
    printf('stuff' .$file1['foo']. 'stuff'); 
    printf('stuff' .$file1['bar']. 'stuff'); 
?> 

通過這種方式,您可以組織數據,而且使代碼審查和後來的開發更加艱鉅。