Heim  >  Artikel  >  Backend-Entwicklung  >  Die Verwendung von PHP-Pseudo-Überladung

Die Verwendung von PHP-Pseudo-Überladung

*文
*文Original
2017-12-26 14:15:381276Durchsuche

Wie verwende ich PHP-Pseudo-Neuladen? Bei schwach typisierten Sprachen ähnelt die Überladung von PHP-Funktionen nicht dem allgemeinen OOP. Schwache Typen sind nicht von Natur aus differenziert und können daher nicht durch diese implementiert werden. In diesem Artikel erfahren Sie, wie Sie Pseudo-Überladung in PHP implementieren, und wir hoffen, dass er für alle hilfreich ist.

Eine Alternative zur Funktionsüberladung – Pseudoüberladung. Schauen wir uns unten einen konkreten Beispielcode an.

<? 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 ;
 }
}
?>

Verwandte Empfehlungen:

PHP-Nachlademethode_ _call( )

PHP-Überladung

Grundstruktur der PHP-Funktion

Das obige ist der detaillierte Inhalt vonDie Verwendung von PHP-Pseudo-Überladung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn