Rumah > Artikel > pembangunan bahagian belakang > Mari kita bincangkan tentang cara melaksanakan pelbagai kaedah pembinaan dalam PHP
PHP ialah bahasa skrip sebelah pelayan yang popular kerana kuasa dan fleksibilitinya membuatkan ramai pembangun menolaknya. Dalam PHP, kaedah pembina (Constructor) adalah teknologi yang sangat biasa digunakan, di mana nilai atribut boleh dipratetap apabila objek dicipta, menjadikan program kami lebih cekap dan fleksibel.
Walau bagaimanapun, pembina PHP mempunyai had: setiap kelas hanya boleh mentakrifkan satu pembina. Had ini tidak mencukupi untuk sesetengah senario, kerana kadangkala kita memerlukan berbilang pembina. Jadi apa yang perlu dilakukan? Ini memerlukan penggunaan berbilang pembina.
Pembina berbilang PHP boleh dilaksanakan melalui kaedah ajaib __construct() dan __call(). Di bawah ini kami menerangkan kedua-dua kaedah ini secara terperinci melalui kes.
1. Gunakan kaedah __construct() untuk melaksanakan pembina berparameter dan tanpa parameter
Kaedah __construct() ialah kaedah ajaib dalam PHP, yang mentakrifkan apabila kelas dijadikan instantiated Kaedah yang dipanggil secara automatik boleh dimulakan beberapa sifat dan operasi lain semasa instantiasi.
Kita boleh menggunakan kaedah __construct() dalam kelas untuk mentakrifkan kaedah constructor. Jika kaedah pembina ditakrifkan, ia akan dilaksanakan secara automatik apabila objek kelas dicipta. Ini adalah pendekatan asli PHP kepada satu pembina.
Walau bagaimanapun, kami boleh melaksanakan pembinaan pembina berparameter dan tanpa parameter melalui kod berikut.
class MyClass{ public function __construct(){ $args = func_get_args(); $numArgs = func_num_args(); if ($numArgs == 0) echo "使用无参构造方法<br>"; else if ($numArgs == 1) echo "使用有参构造方法,并传入了1个参数:".$args[0]."<br>"; else if ($numArgs == 2) echo "使用有参构造方法,并传入了2个参数:".$args[0].",".$args[1]."<br>"; else echo "使用有参构造方法,并传入了3个或以上个参数<br>"; } }
Dalam kod di atas, kami mentakrifkan kelas MyClass dan menggunakan kaedah __construct() dalam kelas untuk mentakrifkan pembina Pada masa yang sama, kami menggunakan fungsi terbina dalam PHP func_get_args() dan func_num_args() untuk mendapatkan nilai parameter dan bilangan parameter pembina. Dengan menilai bilangan parameter yang diluluskan, kami boleh melaksanakan pelbagai kaedah pembinaan.
Seterusnya, mari kita uji kaedah pembinaan tanpa parameter dan kaedah pembinaan berparameter masing-masing:
$obj1 = new MyClass(); $obj2 = new MyClass(111); $obj3 = new MyClass(111,222); $obj4 = new MyClass(111,222,333);
Hasil output:
使用无参构造方法 使用有参构造方法,并传入了1个参数:111 使用有参构造方法,并传入了2个参数:111,222 使用有参构造方法,并传入了3个或以上个参数
2. Gunakan kaedah ajaib_ _call() melaksanakan berbilang pembina
Kaedah ajaib __call() ialah kaedah ajaib lain dalam PHP Ia boleh menangkap nama kaedah yang tidak wujud dalam kelas dan menghantar nama kaedah dan parameter kepada __call( ) diproses.
Dalam proses ini, kita boleh menggunakan kaedah ajaib __call() untuk melaksanakan berbilang pembina.
class MyClass2{ public function oneParam($arg1) { echo "使用构造方法OneParam,并传入了1个参数:".$arg1."<br>"; } public function twoParam($arg1,$arg2) { echo "使用构造方法TwoParam,并传入了2个参数:".$arg1.",".$arg2."<br>"; } public function __call($name, $arguments){ echo "不存在的方法:" .$name. "<br>"; $numArgs = count($arguments); if ($name == 'construct' && $numArgs == 1) { return $this->oneParam($arguments[0]); } else if ($name == 'construct' && $numArgs == 2) { return $this->twoParam($arguments[0], $arguments[1]); } } }
Dalam kod di atas, kami mentakrifkan kelas MyClass2 yang lain, dan mentakrifkan tiga kaedah twoParam(), oneParam() dan __call() dalam kelas, antaranya kaedah __call() boleh Menangkap nama kaedah membina yang tidak wujud dalam kelas dan melaksanakannya.
Kita boleh menggunakan kod berikut untuk menguji:
$obj5 = new MyClass2(); $obj6 = new MyClass2(); $obj7 = new MyClass2(); $obj8 = new MyClass2(); $obj5->construct(111); $obj6->construct(111,222); $obj7->construct2(111); $obj8->construct2(111,222);
Hasil keluaran:
不存在的方法:construct 使用构造方法OneParam,并传入了1个参数:111 不存在的方法:construct 使用构造方法TwoParam,并传入了2个参数:111,222 不存在的方法:construct2 不存在的方法:construct2
Ia boleh dilihat dengan menggunakan kaedah sihir __call(), kami juga Pelbagai pembina boleh dilaksanakan dengan jayanya.
Ringkasan
Terdapat banyak cara untuk melaksanakan berbilang pembina dalam PHP Kita boleh melaksanakannya melalui kaedah __construct() dan kaedah ajaib __call(). Melalui kaedah ini, kami boleh praset sifat dan operasi lain dengan lebih mudah dan cekap apabila mencipta objek PHP. Ini bukan sahaja menjadikan pembangunan PHP lebih berwarna, tetapi juga membuatkan kami mengagumi fleksibiliti dan kuasa bahasa PHP.
Atas ialah kandungan terperinci Mari kita bincangkan tentang cara melaksanakan pelbagai kaedah pembinaan dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!