簡介:在PHP中提供了強大的系統函數來幫我們完成功能,但有時候只用系統函數往往還是不夠的,還需要根據業務來封裝自訂函數,《PHP進階篇-函數視頻教程》講解如何自訂函數,以及自訂函數中常見問題,是PHP入門必看課程。
課程播放網址:http://www.php.cn/course/417.html
該老師講課風格:
教師講課生動形象,機智詼諧,妙語連珠,動人心弦。一個生動形象的比喻,猶如畫龍點睛,給學生開啟智慧之門;一種恰如其分的幽默,引來學生會心的微笑,如飲一杯甘醇的美酒,給人以回味和留戀;哲人的警句、文化的箴言不時穿插於講述中間,給人思考和警醒。
本影片中較為困難是PHP中回呼函數的使用了:
#回呼函數、閉包在JS中並不陌生,JS使用它可以完成事件機制,進行許多複雜的操作。 PHP中卻不常使用,今天來說一說PHP中的回呼函數與匿名函數。
回呼函數
回呼函數:Callback (即call then back 被主函數呼叫運算後會傳回主函數),是指透過函數參數傳遞到其它程式碼的,某一塊可執行代碼的引用。
通俗的解釋就是把函數作為參數傳入進另一個函數中使用;PHP中有許多「需求參數為函數」的函數,像array_map,usort,call_user_func_array之類,他們執行傳入的函數,然後直接將結果傳回主函數。好處是函數作為值使用起來方便,而且程式碼簡潔,可讀性強。
今天在自己創建的類別方法中想調用另一個類別方法作為其回調函數,本想直接寫在回調函數的地方直接寫上另一個類別方法的名字,可是一直報錯說"參數無效",後來一想是不是要用SELF關鍵字試試,結果還是報這種錯誤。真不知道該怎麼辦了,查了一下中文手冊也沒有找到解決方法,後來仔細的看了一下PHP官方網站的手冊,這個手冊上有解決這個問題的語法。
class utils{
public function array_or( $input )
{
return array_reduce( $input, array('Utils','sum' ), 0 );
}
public function sum( $v, $w )
{
return $v += $w;
}
}
$uti = new utils;
$a = array(1,2,3,4,5);
echo $uti->array_or($a);
讓我感覺很奇怪,為什麼呼叫另一個類別方法會用陣列的形式,好像用SELF關鍵字更合適些吧,哎,真不知道他們是出於什麼樣的考慮要設計這樣的文法。不過我想既然人家這樣設計一定是有他的道理,只是我還沒悟出這個道理而已。
以上是PHP進階篇-函數影片教學分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!