Apakah kaedah sihir dalam PHP? dan Bagaimana Melaksanakannya?



Artikel ini akan memberi anda pengetahuan terperinci dan komprehensif mengenai pelbagai Kaedah Sihir dalam PHP dengan Contoh.

Dalam , fungsi khas dapat didefinisikan sedemikian rupa sehingga dapat dipanggil secara otomatis dan tidak memerlukan panggilan fungsi untuk melaksanakan kod di dalam fungsi-fungsi ini. Ciri ini tersedia dalam kaedah khas yang dikenali sebagai kaedah sihir. Dalam artikel ini, kita akan membincangkan Kaedah Sihir teratas dalam PHP.

Apakah Kaedah Sihir dalam PHP?

Kaedah yang bermula dengan 2 garis bawah (__) biasanya dipanggil kaedah Magic dalam PHP. Nama kaedah ini terhad kepada beberapa senarai PHP kata kunci yang disokong yang dikhaskan. Jadi sebarang fungsi tidak boleh didefinisikan dengan nama kaedah sihir PHP.





Magic-Methods-in-PHP

Biasanya, fungsi-fungsi ini harus ditentukan oleh pengguna dan tidak perlu memanggilnya dengan jelas.



Senarai Kaedah Sihir dalam PHP

  • __konstruk ()
  • __hancurkan ()
  • __call ($ seronok, $ arg)
  • __callStatic ($ seronok, $ arg)
  • __get ($ harta tanah)
  • __set ($ harta tanah, nilai $)
  • __isset (kandungan $)
  • __unset (kandungan $)
  • __ tidur ()
  • __bangun()
  • __menjalin()
  • __invoke ()
  • __set_state ($ array)
  • __klon ()
  • __debugInfo ()
  • __konstruk (): Ini adalah kaedah yang dipanggil secara automatik setelah penciptaan objek. Sebilangan besar argumen dapat ditentukan di sini yang akan dilalui ketika objek dibuat.
sampel kelas {function user_def () {echo 'pengguna ditentukan konstruktor'} fungsi __construct () {echo 'preefined konstruktor'}} $ obj = sampel baru ()?>

  • __destruct (): Destructor adalah ciri umum dari bahasa berorientasi objek yang dipicu sebaik sahaja tidak ada rujukan lain ke objek tertentu.
user_def () // periksa objek hancur atau tidak echo is_object ($ obj). ' '?>

  • __call ($ seronok, $ arg): Kaedah ini dipanggil apabila kaedah yang tidak ditentukan atau tidak dapat diakses dipanggil. Yang bermaksud ia dipanggil ketika kaedah yang tidak ditentukan atau tidak dapat diakses dipanggil pada objek.
run ('teacher') // Sekiranya kaedah yang tidak ada disebut dalam objek, maka kaedah __call () akan dipanggil secara automatik. $ obj-> eat ('ashok', 'orange') $ obj-> user_define ()?>



  • __callStatic ($ seronok, $ arg): Kaedah ini dipanggil apabila kaedah yang tidak ditentukan atau tidak dapat diakses dipanggil secara statik.
user_define ()?>

  • __get ($ harta tanah): Kaedah ini digunakan untuk mendapatkan nilai untuk sifat kelas yang dibuat secara dinamik oleh kelebihan harta tanah PHP.
name = $ name $ this-> reg = $ reg} public function __get ($ propertyName) {if ($ propertyName == 'reg') {if ($ this-> reg> 30) {pulangkan $ this-> reg - 10} lain {pulangkan $ ini -> $ propertyName}} lain {pulangkan $ ini -> $ propertyName}}} $ obj = Pelajar baru ('Ashok', 60) // Instantkan objek dengan kelas Pelajar dan tetapkan nilai awal kepada sifat dengan pembina. gema 'Nama :'. $ obj-> nama. '' // Apabila harta persendirian diakses, kaedah __get () akan dipanggil secara automatik, sehingga kita dapat memperoleh nilai properti secara tidak langsung. echo 'reg :'. $ obj-> reg. Kaedah __get () dipanggil secara automatik , dan ia mengembalikan nilai yang berbeza mengikut objek itu sendiri. ?>

  • __set ($ harta tanah, nilai $): Kaedah ini digunakan untuk meletakkan nilai untuk sifat kelas yang dibuat secara dinamik oleh kelebihan harta tanah PHP.
name = $ name $ this-> reg = $ reg} public function __set ($ property, $ value) {if ($ property == 'reg') $ value $ property = $ nilai fungsi awam menyeronokkan () {echo 'My nama adalah '. $ this-> name.', nombor pendaftaran saya adalah '. $ this-> reg}} $ obj = Pelajar baru (' Ashok ', 40) // Perhatikan bahawa nilai awal akan diubah oleh kod di bawah. $ obj-> name = 'Sushma' // Harta 'name' akan diberikan dengan jayanya. Sekiranya tidak ada kaedah __set (), maka program akan membuang pengecualian. $ obj-> age = 16 // Harta 'reg' akan diberikan dengan jayanya. $ obj-> reg = 160 // 160 adalah nilai yang tidak sah, sehingga gagal ditugaskan. $ obj-> seronok ()?>

  • __isset ($ kandungan); Kaedah ini akan dipanggil semasa memanggil Isset () atau kosong () untuk anggota yang tidak ditentukan atau tidak dapat diakses. Ia dipanggil secara automatik semasa memeriksa sama ada harta tanah yang berlebihan diperlukan ditetapkan atau tidak, dengan menggunakan fungsi PHP Isset ().
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} fungsi awam __isset ($ content) {echo 'Harta {$ content} adalah peribadi method kaedah __isset () dipanggil secara automatik. 'echo isset ($ this -> $ content)}} $ obj = Pelajar baru (' Ashok ', 30) // Pada mulanya ditugaskan. echo isset ($ obj-> gender), '' echo isset ($ obj-> name), '' echo isset ($ obj-> reg), ''?>

  • __unset ($ kandungan): Kaedah ini akan dipanggil semasa memanggil semula () untuk anggota yang tidak ditentukan atau tidak dapat diakses.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} fungsi awam __unset ($ content) {echo 'Ia dipanggil secara automatik apabila kita menggunakan kaedah unset () di luar kelas. 'echo isset ($ this -> $ content)}} $ obj = Pelajar baru (' Ashok ', 30) // Pada mulanya ditugaskan. unset ($ obj-> gender) unset ($ obj-> name) unset ($ obj-> reg)?>

  • __ tidur (): Kaedah ini dipanggil pertama semasa menjalankan serialize (). Ia mengembalikan susunan harta benda pada membersihkan objek kelas PHP sebelum bersiri.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} fungsi awam __sleep () {echo 'Ia dipanggil apabila kaedah serialize () dipanggil di luar kelas. '$ this-> name = base64_encode ($ this-> name) return array (' name ',' reg ') // Ia mesti mengembalikan nilai yang elemennya adalah nama sifat yang dikembalikan. }} $ obj = Pelajar baru ('Ashok') // Pada mulanya ditugaskan. echo bersiri ($ obj) echo ''?>

  • __bangun(): Kaedah ini dipanggil semasa deserialisasi () dijalankan. Ini akan membalikkan kerja untuk memulihkan sifat dan sumber daya objek ketika menggunakan deserialisasi ().
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} fungsi awam __sleep () {echo 'Ia dipanggil apabila kaedah serialize () dipanggil di luar kelas. '$ this-> name = base64_encode ($ this-> name) return array (' name ',' reg ') // Ia mesti mengembalikan nilai yang elemennya adalah nama sifat yang dikembalikan. } fungsi awam __wakeup () {echo 'Ia dipanggil apabila kaedah unserialize () dipanggil di luar kelas. '$ this-> name = 2 $ this-> gender =' Male '}} $ obj = Pelajar baru (' Ashok ') // Pada mulanya ditugaskan. var_dump (serialize ($ obj)) var_dump (unserialize (serialize ($ obj)))?>

  • __menjalin(): Kaedah ini akan dipanggil semasa menggunakan kaedah gema untuk mencetak objek secara langsung. Ia diharapkan dapat mengembalikan nilai rentetan semasa menggunakan contoh kelas dengan pernyataan percetakan PHP.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} fungsi awam __toString () {return 'go go go'}} $ obj = Pelajar baru ('Ashok') // Pada mulanya ditugaskan. gema $ obj?>

membuat susunan objek di java
  • __invoke (): Kaedah ini ditentukan dalam kelas yang akan dipanggil semasa cuba memanggil objek dengan fungsi memanggil.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} fungsi awam __invoke () {echo 'This is a object'}} $ obj = pelajar baru ('Ashok') // Pada mulanya ditugaskan . $ obj ()?>

  • __set_state ($ array): Kaedah ini dipanggil semasa memanggil var_export (). Ini adalah kaedah statik yang dipanggil semasa mengeksport array harta benda dan mengharapkan pemboleh ubah array seperti argumennya.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender}} $ obj = Pelajar baru ('Ashok') // Pada mulanya ditugaskan. var_export ($ obj)?>

  • __klon (): Kaedah ini dipanggil semasa objek disalin.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} fungsi awam __clone () {echo __METHOD __. 'anda sedang mengklon objek. '}} $ obj = Pelajar baru (' Ashok ') // Pada mulanya ditugaskan. $ obj2 = klon $ obj var_dump ('object1:') var_dump ($ obj) echo '' var_dump ('object2:') var_dump ($ obj2)?>

  • __debugInfo (): Kaedah ini dipanggil oleh var_dump () semasa membuang objek untuk mendapatkan sifat yang harus ditunjukkan. Sekiranya kaedah tidak ditentukan pada objek, maka semua harta awam, dilindungi dan peribadi akan ditunjukkan.
prop = $ val} fungsi awam __debugInfo () {return ['propSquared' => $ this-> prop ** 2,]}} var_dump (Sampel baru (22))?>

Dengan ini, kita sampai pada akhir kaedah sihir ini dalam artikel PHP. Saya harap anda mendapat idea mengenai pelbagai kaedah sihir dalam PHP.

Lihat oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai dengan rangkaian lebih daripada 250,000 pelajar berpuas hati yang tersebar di seluruh dunia.

Ada soalan untuk kami? Sila sebutkan di bahagian komen ” Kaedah Sihir di PHP 'Dan saya akan menghubungi anda.