php偽重載的使用

*文
發布: 2023-03-18 14:36:01
原創
1275 人瀏覽過

php偽重載該如何使用?對於弱型別來說,PHP函數重載,並不像一般的OOP。而弱類型本來就不區分,所以無法透過這些來實現。本文分享PHP實作偽重載的方法,希望對大家有幫助。

函數重載的替代方法-偽重載,下面看一個具體的實例程式碼。

<? php
//函数重载的替代方法-伪重载
//
//确实,在PHP中没有函数重载这个概念,让很多时候我们无法进行一些处理,甚至有时候不得不在函数后面定义好N个参数
//在看到了func_get_arg,func_get_args,func_num_args,这三个函数的时候,你们是不是想起了什么?

function testOne ( $a ) {
 echo (&#39; 一个参数就这样 &#39;);
}

function testTwo ( $a ,  $b ){
 echo (&#39; 两个参数的就这样 &#39;);
}

function testThree ($a,  $b,  $c ) {
 echo (&#39; 黑黑,这是三个参数的 &#39;);
}

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 ( &#39; 这是没有参数的情况 &#39; );
   break ;
 }
}
test();
echo ( &#39; &#39; );
test( 1 );
echo ( &#39; &#39; );
test( 1 , 2 );
echo ( &#39; &#39; );
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 重載方法__call( )

PHP 重載

PHP函數的基本結構

以上是php偽重載的使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!