介紹
我有某種形式的,我可能要訪問數次每個頁面加載值。我可以採取兩種不同的方法來訪問它們,但我不確定哪一個更好。三層已經實施的例子是語言,URI和顯示文本的幾個選項,我在這裏描述:定義的變量和數組VS函數在PHP
語言
現在它被配置成這樣:lang()
是返回根據參數的不同值的函數。
例如:lang("full")
打印當前語言「英語」,而lang()
打印當前語言的縮寫「en」。還有更多的選項,如lang("select")
,lang("selectact")
等打印不同的東西。代碼太長,並且與案例無關,所以如果有人想要它,只需要它。
的$地址陣列還返回根據請求不同的值。整個數組在頁面的開頭完全定義,用於獲取當前頁面的更短但準確的鏈接。
例如:echo $Url['full']
會打印「http://mypage.org/path/to/file.php?page=1」,echo $Url['file']
會打印「file.php」。這對於action=""
在表單和許多其他事物中很有用。 $Url['folder']
,$Url['file']
等有更多的值。如果想要的話,也可以用相同的代碼來請求它。
文本
[您可以跳過本段]
有被以同樣的方式比$ URL定義的另一個數組稱爲$文本。整個數組在開始時定義,進行一次mysql調用,並用while循環定義當前頁面的所有$Text[$i]
。我不確定這是否比單個mysql單元多次調用更有效。例如:echo $Text['54']
打印「這只是一個測試陣列!」這可以完美地使用像text(54)
這樣的功能來實現。
問題
有了3個例子,你可以看到,我用不同的方法來幾乎做同樣的功能(沒有雙關語意),但我不知道哪一個應該成爲標準之一我的代碼。我可以創建一個名爲url()
的函數和其他名爲text()
的函數來輸出我想要的內容。我認爲在這些情況下使用函數更好,但我不知道爲什麼。所以我非常感謝你的意見和建議。
我應該按照我描述的方式混合使用數組還是函數,還是應該使用funcions?
請,基地這個答案:
- 源需要由其他開發商
- 資源消耗(處理時間和內存)是可讀和可重複使用的。
- 較短代碼越好越好。
- 越是你解釋的原因越好。
謝謝
PS,現在我知道$ URL和$ URI之間的差異。
我不完全理解你。 「方法」是什麼意思?魔術方法?另外,如果您聲明我在使用對象,那麼爲什麼要使用「而$ request對象...」來與我的腳本進行對比?不是關於對象的句子嗎?對不起,我的英文不好... – 2012-04-04 23:36:24
我肯定也會把'lang','url'和'text'(儘管我可能會把它和'lang'合併成類)。但我認爲在這種情況下,我會使用靜態類,然後像使用它們:'URL :: getFullPath()'或'Lang :: get(54)'(儘管我從不使用數字鍵進行翻譯)。 – powerbuoy 2012-04-04 23:43:51
以您的示例爲例,您傳遞的變量的每個變體都應該是一個具體的方法。除動態值外。例如:你的'$ url'數組將變成'$ request'對象。你可以調用它的具體方法,比如'$ request-> getFullPath()'..你也可以執行$ request-> getParam('page')'。你不需要神奇的方法來處理你正在做的事情 - 它們總是讓事情變得更加複雜,但卻有其用處。 '$ request'是我引用你的'$ url'數組的對象版本。 – 2012-04-04 23:46:34