Kaedah sihir yang biasa digunakan dalam PHP (perkongsian ringkasan)

WBOY
Lepaskan: 2023-03-16 19:32:02
ke hadapan
1601 orang telah melayarinya

(Tutorial yang disyorkan: Tutorial video PHP)

Kaedah pembina/__bina

Apabila kelas dibuat seketika

akan dipanggil apabila kelas baharu dicipta secara automatik apabila dimusnahkan

<?php
class autofelix 
{
    public function __construct()
    {
        echo &#39;我是飞兔小哥~&#39;;
    }
}

new autofelix();
Salin selepas log masuk
Anda boleh menggunakan kaedah yang tidak ditetapkan untuk mencetuskan kaedah ini

Kaedah klon/__klon<. 🎜>

Ia akan dipanggil secara automatik apabila kelas diklon

<?php
class autofelix 
{
    public function __destruct()
    {
        echo &#39;我是飞兔小哥,别销毁我~&#39;;
    }
}

unset(new autofelix());
Salin selepas log masuk
Kaedah panggilan bukan statik/__panggilan

Apabila kaedah yang hendak dipanggil tidak wujud atau kebenarannya tidak mencukupi, ia akan dipanggil secara automatik

Sebagai contoh, saya memanggil pengubahsuaian peribadi di dalam kelas dari luar kelas
<?php
class autofelix 
{
    public function __clone()
    {
        echo &#39;我是飞兔小哥,我想克隆你~&#39;;
    }
}

$a = new autofelix();
clone $a;
Salin selepas log masuk

Kaedah panggilan statik/__callStatic

. Apabila kaedah statik untuk dipanggil tidak wujud atau kebenaran tidak mencukupi, ia akan dipanggil secara automatik

Sebagai contoh, jika saya memanggil kelas di luar kelas Kaedah statik diubah suai peribadi dalaman
<?php
class autofelix 
{
    private function say() 
    {
        echo &#39;我是飞兔小哥~&#39;;
    }

    public function __call($name, $arguments)
    {
        echo &#39;你无权调用&#39; . $name . &#39;方法&#39;;
        die;
    }
}

(new autofelix())->say();
Salin selepas log masuk

Kaedah cetak/__debugInfo

Kaedah ini akan dipanggil apabila objek kelas var_dump()

Jika kaedah ini tidak ditakrifkan, var_dump() akan mencetak semua atribut kelas
<?php
class autofelix 
{
    private static function say() 
    {
        echo &#39;我是飞兔小哥~&#39;;
    }

    public function __callStatic($name, $arguments)
    {
        echo &#39;你无权调用&#39; . $name . &#39;方法&#39;;
        die;
    }
}

$a = new autofelix();
$a::say();
Salin selepas log masuk

Dapatkan atribut ahli/__get

Melaluinya, atribut ahli persendirian boleh diperolehi di luar objek

<?php
class autofelix 
{
    public function __debugInfo()
    {
        echo &#39;飞兔小哥给你温馨提示&#39;;
    }
}

var_dump(new autofelix());
Salin selepas log masuk
Mendapatkan atribut tidak boleh diakses/__isset

Apabila isset( ) atau empty() dipanggil pada atribut yang tidak boleh diakses, ia akan dipanggil secara automatik

<?php
class autofelix 
{
    private $name = &#39;飞兔小哥&#39;;

    public function __get($name)
    {
        if(in_array($name, [&#39;name&#39;, &#39;age&#39;])) {
           echo $this->name;
        } else {
            echo &#39;不是什么东西都能访问的~&#39;;
        }
    }
}

(new autofelix())->name;
Salin selepas log masuk
Tugasan atribut/__set

Ia akan dicetuskan apabila memberikan nilai kepada harta yang tidak ditentukan

<?php
class autofelix 
{
    private $name = &#39;飞兔小哥&#39;;

    public function __isset($name)
    {
        if(in_array($name, [&#39;name&#39;, &#39;age&#39;])) {
           echo $this->name;
        } else {
            echo &#39;不是什么东西都能访问的~&#39;;
        }
    }
}

isset(new autofelix()->name);
Salin selepas log masuk
Panggil objek itu sendiri/__invoke

Objek itu sendiri tidak boleh digunakan secara langsung sebagai fungsi

Jika objek digunakan sebagai Membuat panggilan fungsi akan mencetuskan kaedah ini
<?php
class autofelix 
{
    public function __set($name, $value)
    {
        echo &#39;你想给&#39; . $name . &#39;赋值&#39; . $value;
    }
}

(new autofelix())->name = &#39;飞兔小哥&#39;;
Salin selepas log masuk

Panggilan siri/__tidur

Akan dipanggil secara automatik apabila siri() dipanggil di luar kelas

<?php
class autofelix 
{
    public function __invoke()
    {
        echo &#39;你想调用我?&#39;;
    }
}

(new autofelix())();
Salin selepas log masuk
Panggilan penyahserilan/__bangun

Akan dipanggil secara automatik apabila kaedah unserialize() dilaksanakan

<?php
class autofelix 
{
    public function __sleep()
    {
        echo &#39;我是飞兔小哥~&#39;;
    }
}

serialize(new autofelix());
Salin selepas log masuk
Panggilan aksara output/__toString

Apabila kelas dianggap sebagai Apa yang harus dikembalikan semasa pemprosesan rentetan

Jenis rentetan mesti dikembalikan di sini, jika tidak, ralat maut akan dilaporkan
<?php
class autofelix 
{
    public function __wakeup()
    {
        echo &#39;我是飞兔小哥~&#39;;
    }
}

unserialize(new autofelix());
Salin selepas log masuk

Padam panggilan/__tidak ditetapkan

Apabila dipanggil pada sifat yang tidak boleh diakses Ia akan dipanggil secara automatik apabila tidak ditetapkan()

<?php
class autofelix 
{
    public function __toString()
    {
        return &#39;我是你得不到的对象...&#39;;
    }
}

$a = new autofelix();
echo $a;
Salin selepas log masuk
(tutorial disyorkan:

Tutorial video PHP

)

Atas ialah kandungan terperinci Kaedah sihir yang biasa digunakan dalam PHP (perkongsian ringkasan). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
php
sumber:jb51.net
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan