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 terbaikContoh 1:<?phpkelas A{
function __construct(){echo"A::构造函数";} static function myFun(){echo "你好,很高兴为你答题!";}
}A::myFun();?>Contoh 2:<?phpkelas A{
function __construct(){echo"A::构造函数";}
}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.
Anda harus mengujinya sendiri, pelayar adalah guru terbaik
Contoh 1:
<?php
kelas A{
}
A::myFun();
?>
Contoh 2:
<?php
kelas A{
}
kelas B memanjangkan A{
}
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.