Rumah >pembangunan bahagian belakang >masalah PHP >Kaedah sihir yang biasa digunakan dalam PHP (perkongsian ringkasan)

Kaedah sihir yang biasa digunakan dalam PHP (perkongsian ringkasan)

WBOY
WBOYke hadapan
2022-09-05 17:34:231643semak imbas

(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();
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());
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;

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();

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();

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());
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;
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);
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;;

Panggilan siri/__tidur

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

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

(new autofelix())();
Panggilan penyahserilan/__bangun

Akan dipanggil secara automatik apabila kaedah unserialize() dilaksanakan

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

serialize(new autofelix());
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());

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;
(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!

Kenyataan:
Artikel ini dikembalikan pada:jb51.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam