cari
Rumahphp教程php手册方法重载(重写)/方法覆盖、魔术函数实现


方法重载
函数名不一样通过函数的参数个数或者参数类型不同,达到调用同一个函数名,但是可以区分不同的函数
class A{
public function test1(){
echo "test1";}
public function test1($a){
echo "test1 hhh";}
}


重载
$a=newA();
$a->test1();
$a->test1(222);

上面的这种用法是不对的

魔术函数 方法重载实现

class A{
public function test1($p){
echo "接受一个参数";}
public function test1($p){
echo "接受二个参数";}
}
提供一个__call
__call是它一个对象调用某个方法,而该方法不存在,则系统会自动调用__call
function __call($method,$p){

var_dump($p);
if($method=="test1"){
if(count($p)==1){
$this->test1($p);
}else if(count($p)==2){
$this->test2($p);
}
}
}

$a=newA();
$a->test(1);
$a->test(1,2);


魔术函数
__set,__get,__construct,__destruct,__call,__isset,__unset

__LINE__输出多少行
,__FILE__输出文件名
,__DIR__,
__CLASS__输出类名


方法重写/方法覆盖(overload)

class Animal{
public $name;
protected $price;
function cry(){
echo "不知道";}

}
class Dog extends Animal{
//覆盖
function cry(){
echo "小狗";}
}
class Pig extends Animal{
//覆盖
function cry(){
echo "小猪";}
}

$dog1=new Dog();
$dog1->cry();
$pig=1new Pig();
$pig1->cry();
?>

关于重写:
当一个父类知道所有的子类都有一个方法但是父类不能确定该方法究竟如何写,可以让子类去覆盖这个方法
1.要实现重写,要求子类的那个方法的名字和参数列表一模一样,但是并不要求参数名称一样
2.如果子类要求调用父类的某个方法(public/protected)则可以使用parent::方法名(参数...),父类名::方法名(参数...)
3.在实现方法覆盖的时候,访问修饰符可不一样,但是必须满足子类的访问范围>=父类的访问范围


多态体现在什么地方
当子类没用覆盖父类的方法则$call->cry()调用的是父类,子类覆盖父类的方法则调用自己的cry( )

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular