Seperti tajuknya, apabila PHP memanggil kaedah statik secara terus menggunakan nama kelas, terdapat dua masalah:
1 Adakah pembina kelas semasa akan dipanggil?
2 Adakah pembina kelas induk kelas semasa akan dipanggil?
Anda harus mengujinya sendiri, pelayar adalah guru terbaik
Contoh 1:
<?php
kelas A{
function __construct(){echo"A::構(gòu)造函數(shù)";}
static function myFun(){echo "你好,很高興為你答題!";}
}
A::myFun();
?>
Contoh 2:
<?php
kelas A{
function __construct(){echo"A::構(gòu)造函數(shù)";}
}
kelas B memanjangkan A{
static function myFun(){echo "你好,很高興為你答題!";}
}
B::myFun();
?>
1. Tidak
2. Tidak
Pembina hanya dipanggil semasa instantiasi kaedah statik tidak menjana kejadian dan tidak akan memanggil pembina
Tidak, kaedah pembina hanya akan dipanggil apabila kelas dijadikan instantiated Kaedah statik disimpan dalam kawasan kod statik dan dimuatkan semasa kelas dimuatkan.