難道子類靜態(tài)方法沒有辦法調(diào)用父類非靜態(tài)方法嗎?
Mula-mula pastikan get_one_bysql kelas induk adalah statik
Mengenai penggunaan https://stackoverflow.com/que...
Apa yang anda gunakan jelas sangat tidak teratur Sudah tentu, mari kita sampai ke titik pertama
Untuk melaraskan kaedah bukan statik kelas induk, pertama anda perlu mendapatkan contoh kelas
Jika ada cache, dapatkan sahaja. ia secara langsung, jika tidak, buat satu
$instance = new self();
$totalCount = $instance->get_one_bysql($sqlstr);
Tidak boleh dipanggil.
Kaedah bukan statik perlu mempunyai objek $this, dan objek ini tidak boleh disediakan apabila memanggil daripada kaedah statik.
Buka komen dan main-main untuk mengetahui
<?php
class a{
public $ab = NULL;
public function d(){
var_dump($this->ab);
}
public function c($a,$b){
var_dump($a+$b);
}
}
class b extends a{
public static function t(){
// $this->d(); //Fatal error: Using $this when not in object context in D:\phpStudy\WWW\index.php on line 14
// $this->c(1,2); //Fatal error: Using $this when not in object context in D:\phpStudy\WWW\index.php on line 15
// self::d(); //Strict Standards: Non-static method a::d() should not be called statically in D:\phpStudy\WWW\index.php on line 16
//Fatal error: Using $this when not in object context in D:\phpStudy\WWW\index.php on line 5
// self::c(1,2); //Strict Standards: Non-static method a::c() should not be called statically in D:\phpStudy\WWW\index.php on line 18
// int(3)
// parent::d(); //Strict Standards: Non-static method a::d() should not be called statically in D:\phpStudy\WWW\index.php on line 20
// Fatal error: Using $this when not in object context in D:\phpStudy\WWW\index.php on line 5
// parent::c(1,2); //Strict Standards: Non-static method a::c() should not be called statically in D:\phpStudy\WWW\index.php on line 22
//int(3)
}
}
b::t();
Ringkasan: ini digunakan sebagai contoh panggilan. sendiri, ibu bapa digunakan untuk memanggil sifat atau kaedah statik.
Fenomena pelik yang terakhir ialah walaupun anda akan mendapat ralat apabila anda secara statik memanggil kaedah bukan statik kelas induk untuk memproses data, int(3) masih output