今天安裝了Zend Optimizer,它是用來最佳化PHP的程式碼,讓PHP執行起來更有效率。自己並沒有實際做測試來比較執行結果,不過「感覺」上,安裝前和安裝前執行PHP真的有差別。所以這篇文章就記錄一下我安裝的過程: 閱讀全文〈今天安裝了Zend Optimizer〉
函數array_walk
語法:array_walk(陣列變數,自訂函數名稱[,額外的資料])
利用自訂函數去處理傳入陣列的每一個元素。 閱讀全文〈函數array_walk〉
函數trim
語法:trim(字串參數[,清單字串])
trim()會將傳入的字串參數去除左右邊的空白字元(註1),並且將結果以字串型態傳回。所以如果傳入的參數是非字串資料,例如陣列或物件,則得出的結果會以字串形式呈現,而不再具有原本的資料特性(註2)。 閱讀全文〈函數trim〉
函數傳回參照(return by reference)
如果要讓函數以傳址方式傳回值,則定義函數時函數名稱前要加&,而且呼叫函數時名稱前也要加&。
例:
定義:
Function &myfoo(){
func body
}
呼叫:
$myvar=&myfoo();
使用傳址方式(pass by reference)傳遞參數給函數的注意事項
使用傳址方式傳遞參數給函數的注意事項
- 必須使用變數
- 必須使用new敘述
- 如果是函數的傳回值,則函數必須以傳址的方式傳回值。
函數Array_diff
語法:array_diff(陣列1,陣列2[,陣列3…])
array_diff($arr1,$arr2),比較$arr1的元素中哪些是$arr2所沒有的,並且傳回這些沒有的元素,如果$arr1、$arr2對調參數位置產生的結果可能不一樣。不必考慮索引順序。
函數debug_backtrace
語法:debug_backtrace()
功用:傳回引入檔案(物件)層次的陣列。
必須將此函數寫在被引入的檔案(物件)裡才會有內容,若是直接執行寫有此函數的檔案(物件),則傳回空陣列。因此,通常此函數是用來判斷檔案被叫用時是否為被引入的狀態。傳回的陣列裡每一個元素代表引入檔案過程裡的每一個檔案,而且也是以陣列的形式存在,可能的文字索引 有:function、line、file、class、object、type、args。如果使用object當作陣列索引,傳回的是可以實際操作的物件。
請見:http://www.php.net/manual/en/function.debug-backtrace.php
函數strtotime
語法:strtotime(時間字串[,時間戳記])
功能:將有時間意義的英文字串轉換為時間戳記。若加上時間戳記參數,則代表要以這個時間戳記為基準來換算日期。使用範例如下: 閱讀全文〈函數strtotime〉
函數key
語法:key(陣列變數)
函數key,傳入參數是陣列,傳回值是陣列的鍵,也就是索引,如果多元素的陣列,傳回的鍵值就是陣列,如果只是單一元素陣列,那麼傳回的僅只是該元素的索引值。所以在使用函數key的傳回值時還要確認值的型態,以便使用適當的方式來操作。
把月曆寫成函數當成容器
今天把月曆寫成函數,當作一個可以放置內容的容器。這樣一來,有需要搭配月曆並且在裡面放置內容的話就可以很容易使用了,也不用再重寫一次月曆。其實寫一次月曆還挺費事的,但寫成函數之後,只要把資料以「日期」為索引做成陣列再丟到函數處理就可以了,這樣的作法有點像物件的寫法,也大大減少了程式碼。