Heim >Backend-Entwicklung >PHP-Tutorial >PHP verwendet mehrere konstruierte Methoden

PHP verwendet mehrere konstruierte Methoden

小云云
小云云Original
2018-03-21 11:13:321441Durchsuche

Der Grund, warum PHP nicht mehrere Konstruktoren definieren kann, liegt darin, dass der Eingabeparametertyp der Funktion nicht bestimmt werden kann, da PHP eine schwach typisierte Sprache ist (Typhinweise können verwendet werden, Typhinweise können jedoch nicht für Ganzzahlen, Zeichenfolgen usw. verwendet werden). . Skalartyp), und für eine Funktion sind beispielsweise nur 3 Eingabeparameter definiert, aber PHP gibt beim Aufruf 4 oder mehr Parameter ein. Basierend auf diesen beiden Punkten ist es daher vorgesehen, dass Funktionen in PHP (ähnlich der Javascript-Sprache) nicht überladen werden können und auch keine Konstruktoren überladen werden können.

Die Konstruktionsmethode von PHP unterscheidet sich von der von Java. Es kann nur eine Konstruktionsmethode geben. Wenn Sie die Verwendung von Java-ähnlichen Konstruktionsmethoden implementieren möchten Erreichen Sie es. :

[php] Klartext anzeigen

  1. //PHP构造方法使用
    class Test{  
        function __construct(){  
            echo &#39;Test类无参构造方法被调用<br/>&#39;;  
            $a=func_get_args();  
            $i=func_num_args();  
            //判断Test类是否有__constructxx方法,将方法名记为$f
            if(method_exists($this,$f=&#39;__construct&#39;.$i)){  
                //若存在xx方法,使用call_user_func_array(arr1,arr2)函数调用他,该函数的参数为两个数组,前面的数组为调用谁($this)的什么($f)方法,后一个数组为参数
                call_user_func_array(array($this,$f),$a);  
            }  
        }  
        function __construct1($a1){  
            echo &#39;Test类1个参数的仿构造方法被调用<br/>&#39;;  
            //输出参数值
            echo &#39;其值为:&#39;.$a1.&#39;<br/><br/>&#39;;  
        }  
        function __construct2($a1,$a2){  
            echo &#39;Test类2个参数的仿构造方法被调用<br/>&#39;;  
            echo &#39;其值为:&#39;.$a1.&#39;、&#39;.$a2.&#39;<br/><br/>&#39;;  
        }  
        function __construct3($a1,$a2,$a3){  
            echo &#39;Test类3个参数的仿构造方法被调用<br/>&#39;;  
            echo &#39;其值为:&#39;.$a1.&#39;、&#39;.$a2.&#39;、&#39;.$a3.&#39;<br/><br/>&#39;;  
        }  
    }  
    //测试
    new Test(&#39;你&#39;);  
    new Test(&#39;你&#39;,&#39;好&#39;);  
    new Test(&#39;你&#39;,&#39;好&#39;,&#39;啊&#39;);


Das Testergebnis ist:


Verwandte Empfehlungen:

Detaillierte Erklärung des PHP-Sprachkonstruktors

Detaillierte Erklärung der gewöhnlichen js-Funktionen und Konstruktoren

Beispielanalyse für JavaScript-Konstruktormuster

Das obige ist der detaillierte Inhalt vonPHP verwendet mehrere konstruierte Methoden. 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