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