您好,登錄后才能下訂單哦!
這篇文章主要介紹“php函數重載的替代方法是什么”,在日常操作中,相信很多人在php函數重載的替代方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”php函數重載的替代方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
函數重載的替代方法-偽重載,下面看一個具體的實例代碼。
<? php //函數重載的替代方法-偽重載 // //確實,在PHP中沒有函數重載這個概念,讓很多時候我們無法進行一些處理,甚至有時候不得不在函數后面定義好N個參數 //在看到了func_get_arg,func_get_args,func_num_args,這三個函數的時候,你們是不是想起了什么? function testOne ( $a ) { echo (' 一個參數就這樣 '); } function testTwo ( $a , $b ){ echo (' 兩個參數的就這樣 '); } function testThree ($a, $b, $c ) { echo (' 黑黑,這是三個參數的 '); } function test () { $argNum = func_num_args (); // 這一段其實可以用 $_arg = func_get_args() 來獲得所有的參數,只是要用數組而已,不方便我下面的表達,呵呵 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 ( ' 這是沒有參數的情況 ' ); break ; } } test(); echo ( ' ' ); test( 1 ); echo ( ' ' ); test( 1 , 2 ); echo ( ' ' ); test( 1 , 2 , 3 ); // 這些只是在函數中的運用,其實最主要的還是在類中的運用 //如果這些用到類里面我就不需要擔心構造函數是否有幾個參數了,不是嗎? 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 ; } } ?>
到此,關于“php函數重載的替代方法是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。