Mis on maagilised meetodid PHP-s? ja kuidas neid rakendada?



See artikkel annab teile üksikasjalikud ja põhjalikud teadmised PHP mitmesugustest võlumeetoditest koos näidetega.

Sisse , erifunktsioonid saab määratleda nii, et neid saab automaatselt kutsuda ega vaja nende funktsioonide koodi käivitamiseks funktsiooni väljakutset. See funktsioon on saadaval spetsiaalses meetodis, mida nimetatakse maagilisteks meetoditeks. Selles artiklis käsitleme PHP peamisi võlumeetodeid.

Mis on maagilised meetodid PHP-s?

2 alakriipsuga (__) algavaid meetodeid nimetatakse PHP-s tavaliselt maagilisteks meetoditeks. Nende meetodite nimed piirduvad mõne loendiga PHP toetatud märksõnad, mis on reserveeritud. Nii et ühtegi funktsiooni ei tohiks defineerida PHP maagiliste meetodite nimega.





Magic-Methods-in-PHP

mis on javas mööduv

Tavaliselt peaks need funktsioonid määrama kasutaja ja pole vaja neid otsesõnu kutsuda.



Maagiliste meetodite loend PHP-s

  • __construct ()
  • __destruct ()
  • __call ($ fun, $ arg)
  • __callStatic ($ fun, $ arg)
  • __get (vara $)
  • __set (vara $, väärtus $)
  • __isset ($ content)
  • __unset ($ sisu)
  • __ magama ()
  • __Ärka üles()
  • __toString ()
  • __invoke ()
  • __set_state (massiiv $)
  • __kloon ()
  • __debugInfo ()
  • __construct (): See on meetod, mida kutsutakse pärast objekti loomist automaatselt. Siin saab määratleda suvalise arvu argumente, mis edastatakse objektide loomisel.
klassi näidis {function user_def () {echo 'user define constructor'} function __construct () {echo 'preefined constructor'}} $ obj = new sample ()?>

  • __destruct (): Destructor on objektile orienteeritud keele levinud tunnusjoon, mis käivitatakse kohe, kui konkreetsele objektile pole muid viiteid.
user_def () // kontrollobjekt on hävitatud või mitte echo is_object ($ obj). ' '?>

  • __call ($ fun, $ arg): Seda meetodit nimetatakse siis, kui kutsutakse määratlemata või ligipääsmatu meetod. Mis tähendab, et seda nimetatakse juhul, kui objektil käivitatakse määratlemata või ligipääsmatu meetod.
run ('õpetaja') // Kui objektis kutsutakse meetodit, mida pole olemas, siis kutsutakse meetod __call () automaatselt. $ obj-> eat ('ashok', 'orange') $ obj-> user_define ()?>



  • __callStatic ($ fun, $ arg): Seda meetodit nimetatakse siis, kui staatilisel viisil kasutatakse määratlemata või ligipääsmatut meetodit.
user_define ()?>

  • __get (vara $): Seda meetodit kasutatakse PHP omaduste ülekoormamise abil dünaamiliselt loodud klassi omaduste väärtuste saamiseks.
name = $ name $ this-> reg = $ reg} avalik funktsioon __get ($ propertyName) {if ($ propertyName == 'reg') {if ($ this-> reg> 30) {return $ this-> reg - 10} else {return $ this -> $ propertyName}} else {return $ this -> $ propertyName}}} $ obj = new Student ('Ashok', 60) // Instantige objekt õpilaseklassiga ja määrake algväärtused omadustega koos konstruktoriga. kaja 'nimi :'. $ obj-> nimi. '' // Eraomandi juurde pääsemisel kutsutakse meetod __get () automaatselt, nii et saame vara väärtuse kaudselt. kaja 'reg :'. $ obj-> reg. '' // Meetodit __get () nimetatakse automaatselt , ja see tagastab erinevad väärtused vastavalt objektile endale. ?

mongodb loo kasutaja andmebaasi jaoks
  • __set (vara $, väärtus $): Seda meetodit kasutatakse PHP omaduste ülekoormamise abil dünaamiliselt loodud klassi omaduste väärtuste panemiseks.
name = $ name $ this-> reg = $ reg} avalik funktsioon __set ($ property, $ value) {if ($ property == 'reg') $ value $ property = $ value public function fun () {echo 'Minu nimi on '. $ this-> nimi.', Minu registreerimisnumber on '. $ this-> reg}} $ obj = new Student (' Ashok ', 40) // Pange tähele, et algset väärtust muudab kood allpool. $ obj-> name = 'Sushma' // Atribuut 'nimi' määratakse edukalt. Kui meetodit __set () pole, loob programm erandi. $ obj-> age = 16 // Atribuut 'reg' määratakse edukalt. $ obj-> reg = 160 // 160 on vale väärtus, mistõttu seda ei saa määrata. $ obj-> fun ()?>

  • __isset ($ sisu); Seda meetodit kutsutakse määramata või ligipääsmatule liikmele helistades isset () või empty (). See käivitatakse automaatselt, kontrollides funktsiooni PHP isset () abil, kas vajalik ülekoormatud omadus on määratud või mitte.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} avalik funktsioon __isset ($ content) {echo 'Atribuut {$ content} on privaatne , meetodit __isset () kutsutakse automaatselt. 'echo isset ($ this -> $ content)}} $ obj = new Student (' Ashok ', 30) // Esialgu määratud. kaja isset ($ obj-> sugu), '' kaja isset ($ obj-> nimi), 'kaja isset ($ obj-> reg),' '?>

  • __unset ($ content): Seda meetodit kutsutakse määramata või ligipääsmatu liikme reset () kutsumise ajal.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} public function __unset ($ content) {echo 'Seda kutsutakse automaatselt, kui kasutame meetodit unset () väljaspool klassi. 'echo isset ($ this -> $ content)}} $ obj = new Student (' Ashok ', 30) // Esialgu määratud. unset ($ obj-> sugu) unset ($ obj-> nimi) unset ($ obj-> reg)?>

  • __sleep (): Seda meetodit nimetatakse esmalt serialize () käivitamisel. See tagastab PHP-klassi objektide puhastamisel enne jadastamist objekti omaduste massiivi.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} avalik funktsioon __sleep () {echo 'Seda kutsutakse siis, kui serialize () meetodit kutsutakse väljaspool klassi. '$ this-> name = base64_encode ($ this-> name) return array (' name ',' reg ') // See peab tagastama väärtuse, mille elemendid on tagastatud omaduste nimi. }} $ obj = new Student ('Ashok') // Esialgu määratud. kaja jada ($ obj) kaja ''?>

  • __Ärka üles(): Seda meetodit nimetatakse deserialiseerimise () käivitamisel. See muudaks deserialiseerimise () esilekutsumisel töö objektide omaduste ja ressursside taastamiseks.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} public function __sleep () {echo 'Seda kutsutakse, kui meetodit serialize () kutsutakse väljaspool klassi. '$ this-> name = base64_encode ($ this-> name) return array (' name ',' reg ') // See peab tagastama väärtuse, mille elemendid on tagastatud omaduste nimi. } public function __wakeup () {echo 'Seda kutsutakse, kui meetodit unserialize () kutsutakse väljaspool klassi. '$ this-> name = 2 $ this-> gender =' Male '}} $ obj = new Student (' Ashok ') // Esialgu määratud. var_dump (jada ($ obj)) var_dump (seriialiseeri (jada ($ obj)))?>

  • __toString (): Seda meetodit kutsutakse kaja meetodi abil objekti otse printimiseks. Eeldatakse, et see tagastab stringi väärtuse, kui kasutate klassieksemplare PHP-de väljavõtetega.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} avalik funktsioon __toString () {return 'go go go'}} $ obj = new Student ('Ashok') // Esialgu määratud. kaja $ obj?>

  • __invoke (): See meetod on määratletud klassis, mida kutsutakse, kui proovite objektile helistada funktsiooni kutsumise viisil.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} avalik funktsioon __invoke () {echo 'See on objekt'}} $ obj = new Student ('Ashok') // Esialgu määratud . $ obj ()?>

  • __set_state (massiiv $): Seda meetodit nimetatakse var_export () kutsumisel. See on staatiline meetod, mida rakendatakse objektide omaduste massiivi eksportimisel ja eeldab selle massiivi muutujat.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender}} $ obj = new Student ('Ashok') // Esialgu määratud. var_export ($ obj)?>

peakokk vs ansible vs nukk
  • __kloon (): Seda meetodit nimetatakse objekti kopeerimisel.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} public function __clone () {echo __METHOD __. 'kloonite objekti. '}} $ obj = new Student (' Ashok ') // Esialgu määratud. $ obj2 = kloon $ obj var_dump ('object1:') var_dump ($ obj) echo '' var_dump ('object2:') var_dump ($ obj2)?>

  • __debugInfo (): Seda meetodit kutsub var_dump (), samal ajal kui objekt demonteeritakse kuvatavate omaduste saamiseks. Kui meetodit pole objektil määratletud, kuvatakse kõik avalikud, kaitstud ja eraomandid.
prop = $ val} avalik funktsioon __debugInfo () {return ['propSquared' => $ this-> prop ** 2,]}} var_dump (uus proov (22))?>

Sellega jõuame selle maagilise meetodi lõpuni PHP artiklis. Loodan, et saite ettekujutuse erinevatest võluvõtetest PHP-s.

Vaadake autor Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik koosneb enam kui 250 000 rahulolevast õppijast ja mis levib üle kogu maailma.

Kas teil on meile küsimus? Palun mainige seda kommentaaride jaotises ” Maagilised meetodid aastal PHP ”Ja pöördun teie poole tagasi.