php函數(shù)重載的替代方法--偽重載詳解
更新時間:2015年05月08日 11:25:58 投稿:hebedich
對于弱類型語言來說,PHP函數(shù)重載,并不像一般的OOP那樣。而弱類型本來就不區(qū)分,所以無法通過這些來實現(xiàn)。但是,可以通過下面的方法來實現(xiàn)簡單的偽重載吧。
函數(shù)重載的替代方法-偽重載,下面看一個具體的實例代碼。
<? php //函數(shù)重載的替代方法-偽重載 // //確實,在PHP中沒有函數(shù)重載這個概念,讓很多時候我們無法進行一些處理,甚至有時候不得不在函數(shù)后面定義好N個參數(shù) //在看到了func_get_arg,func_get_args,func_num_args,這三個函數(shù)的時候,你們是不是想起了什么? function testOne ( $a ) { echo (' 一個參數(shù)就這樣 '); } function testTwo ( $a , $b ){ echo (' 兩個參數(shù)的就這樣 '); } function testThree ($a, $b, $c ) { echo (' 黑黑,這是三個參數(shù)的 '); } function test () { $argNum = func_num_args (); // 這一段其實可以用 $_arg = func_get_args() 來獲得所有的參數(shù),只是要用數(shù)組而已,不方便我下面的表達,呵呵 for ( $i = 0 ; $i < $argNum ; $i ++ ) { $_arg_ { $i } = func_get_arg ( $i ); } switch ( $argNum ) { case 1 : testOne( $_arg_1 ); break ; case 2 : testTwo( $_arg_1, $_arg_2 ); break ; case 3 : testThree( $_arg_1, $_arg_2, $_arg_3 ); break ; default : echo ( ' 這是沒有參數(shù)的情況 ' ); break ; } } test(); echo ( ' ' ); test( 1 ); echo ( ' ' ); test( 1 , 2 ); echo ( ' ' ); test( 1 , 2 , 3 ); // 這些只是在函數(shù)中的運用,其實最主要的還是在類中的運用 //如果這些用到類里面我就不需要擔心構(gòu)造函數(shù)是否有幾個參數(shù)了,不是嗎? class test { var $a = 0 ; var $b = 0 ; function test () { $argNum = func_num_args (); $_arg = func_get_args (); switch ($argNum ) { case 1 : $this -> test1( $_arg [ 0 ] ); break ; case 2 : $this -> test2( $_arg [ 0 ] , $_arg [ 1 ]); break ; default : $this -> a = 0 ; $this -> b = 1 ; break ; } } function test1 ($a) { $this -> a = $a ; } function test2 ($a, $b) { $this -> a = $a ; $this -> b = $b ; } } ?>
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
您可能感興趣的文章:
- 解決PHP Opcache 緩存刷新、代碼重載出現(xiàn)無法更新代碼的問題
- php 使用 __call實現(xiàn)重載功能示例
- PHP面向?qū)ο蟪绦蛟O(shè)計模擬一般面向?qū)ο笳Z言中的方法重載(overload)示例
- PHP面相對象中的重載與重寫
- PHP中子類重載父類的方法【parent::方法名】
- PHP面向?qū)ο缶幊讨钊肜斫夥椒ㄖ剌d與方法覆蓋(多態(tài))
- php繼承中方法重載(覆蓋)的應(yīng)用場合
- PHP使用方法重載實現(xiàn)動態(tài)創(chuàng)建屬性的get和set方法
- PHP利用func_get_args和func_num_args函數(shù)實現(xiàn)函數(shù)重載實例
- php面向?qū)ο笕ヂ?(八)重載新的方法
- php面向?qū)ο蟮姆椒ㄖ剌d兩種版本比較
- PHP重載基礎(chǔ)知識回顧
相關(guān)文章
PHP array_reduce()函數(shù)的應(yīng)用解析
這篇文章主要介紹了PHP array_reduce()的應(yīng)用,本文通過代碼舉例給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2018-10-10Laravel5中實現(xiàn)模糊匹配加多條件查詢功能的方法
這篇文章主要介紹了Laravel5中實現(xiàn)模糊匹配加多條件查詢功能的方法,結(jié)合實例形式分析了Laravel5多條件模糊查詢及相關(guān)封裝操作技巧,需要的朋友可以參考下2018-03-03淺談php中變量的數(shù)據(jù)類型判斷函數(shù)
下面小編就為大家?guī)硪黄獪\談php中變量的數(shù)據(jù)類型判斷函數(shù)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03thinkphp 3.2框架視圖模型 實例視圖查詢結(jié)果的二維數(shù)組合并操作示例
這篇文章主要介紹了thinkphp 3.2框架視圖模型 實例視圖查詢結(jié)果的二維數(shù)組合并操作,結(jié)合實例形式分析了thinkPHP3.2針對視圖查詢結(jié)果的數(shù)組合并相關(guān)操作技巧,需要的朋友可以參考下2020-03-03