Mitä taianomaiset menetelmät ovat PHP: ssä? ja miten ne toteutetaan?



Tämä artikkeli antaa sinulle yksityiskohtaisen ja kattavan tietämyksen PHP: n erilaisista taikamenetelmistä esimerkkien avulla.

Sisään , erityistoiminnot voidaan määritellä siten, että ne voidaan kutsua automaattisesti ja jotka eivät vaadi toimintokutsuja koodin suorittamiseksi näiden toimintojen sisällä. Tämä ominaisuus on saatavana erityisenä menetelmänä, joka tunnetaan taikuusmenetelminä. Tässä artikkelissa käsitellään PHP: n suosituimpia taikamenetelmiä.

Mitä ovat Magic-menetelmät PHP: ssä?

Menetelmiä, jotka alkavat kahdella alaviivalla (__), kutsutaan yleensä Magic-menetelmiksi PHP: ssä. Nämä menetelmien nimet rajoittuvat johonkin luetteloon PHP tuetut avainsanat, jotka on varattu. Joten mitään toimintoa ei pitäisi määritellä PHP-taikuusmenetelmien nimillä.





Magic-Methods-in-PHP

Yleensä käyttäjän tulisi määritellä nämä toiminnot, eikä niitä tarvitse kutsua yksiselitteisesti.



Luettelo taikatavoista PHP: ssä

  • __rakentaa()
  • __destruct ()
  • __call ($ hauskaa, $ arg)
  • __callStatic ($ hauskaa, $ arg)
  • __get ($ omaisuus)
  • __set ($ omaisuus, $ arvo)
  • __isset ($ sisältö)
  • __unset ($ sisältö)
  • __nukkua()
  • __herätä()
  • __toString ()
  • __vedota()
  • __set_state ($ taulukko)
  • __klooni()
  • __virheenkorjaustiedot()
  • __rakentaa(): Se on menetelmä, jota kutsutaan automaattisesti objektin luomisen jälkeen. Tässä voidaan määrittää mikä tahansa määrä argumentteja, jotka välitetään kun objektit luodaan.
luokan näyte {function user_def () {echo 'käyttäjän määrittämä konstruktori'} function __construct () {echo 'preefined constructor'}} $ obj = uusi näyte ()?>

  • __destruct (): Destructor on olio-kielen yleinen piirre, joka laukaistaan ​​heti, kun tiettyyn objektiin ei ole muita viitteitä.
user_def () // tarkista, että objekti on tuhottu tai ei echo is_object ($ obj). ' '?>

  • __call ($ fun, $ arg): Tätä menetelmää kutsutaan, kun kutsutaan määrittelemätöntä tai käyttämätöntä menetelmää. Mikä tarkoittaa sitä, että sitä kutsutaan, kun objektille käytetään määrittelemätöntä tai käyttämätöntä menetelmää.
run ('teacher') // Jos objektissa kutsutaan menetelmää, jota ei ole olemassa, menetelmä __call () kutsutaan automaattisesti. $ obj-> syö ('ashok', 'oranssi') $ obj-> user_define ()?>



  • __callStatic ($ fun, $ arg): Tätä menetelmää kutsutaan, kun määrittelemätöntä tai käyttämätöntä menetelmää käytetään staattisella tavalla.
user_define ()?>

  • __get ($ omaisuus): Tätä menetelmää käytetään arvojen saamiseen luokan ominaisuuksille, jotka luodaan dynaamisesti PHP-ominaisuuden ylikuormituksen avulla.
name = $ name $ this-> reg = $ reg} public function __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) // Instantoi objekti Student-luokan kanssa ja määritä alkuarvot ominaisuuksiin rakentajan kanssa. kaiku 'Nimi :'. $ obj-> nimi. '' // Kun yksityisomaisuutta käytetään, menetelmä __get () kutsutaan automaattisesti, jotta voimme saada ominaisuusarvon epäsuorasti. kaiku 'reg :'. $ obj-> reg. '' // Metodia __get () kutsutaan automaattisesti , ja se palauttaa eri arvot objektin mukaan. ?>

  • __set ($ omaisuus, $ arvo): Tätä menetelmää käytetään asettamaan arvot luokkaominaisuuksille, jotka on luotu dynaamisesti PHP-ominaisuuden ylikuormituksella.
name = $ name $ this-> reg = $ reg} public function __set ($ property, $ value) {if ($ property == 'reg') $ value $ property = $ value public function fun () {echo 'Oma nimi on '. $ this-> nimi.', Rekisteröintinumero on '. $ this-> reg}} $ obj = new Student (' Ashok ', 40) // Huomaa, että koodi muuttaa alkuperäistä arvoa alla. $ obj-> name = 'Sushma' // Ominaisuus 'name' määritetään onnistuneesti. Jos __set () -menetelmää ei ole, ohjelma heittää poikkeuksen. $ obj-> age = 16 // Reg-ominaisuus määritetään onnistuneesti. $ obj-> reg = 160 // 160 on virheellinen arvo, joten sitä ei voida määrittää. $ obj-> hauskaa ()?>

  • __isset ($ sisältö); Tätä menetelmää kutsutaan, kun soitetaan määrittelemättömälle tai pääsemättömälle jäsenelle isset () tai tyhjä (). Se kutsutaan automaattisesti tarkistamalla, onko vaadittu ylikuormitettu ominaisuus asetettu vai ei, käyttämällä PHP isset () -toimintoa.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} public function __isset ($ content) {echo 'Ominaisuus {$ content} on yksityinen , __isset () -menetelmää kutsutaan automaattisesti. 'echo isset ($ this -> $ content)}} $ obj = new Student (' Ashok ', 30) // Alun perin annettu. echo isset ($ obj-> gender), '' echo isset ($ obj-> name), 'echo isset ($ obj-> reg),' '?

  • __unset ($ content): Tätä menetelmää kutsutaan kutsuttaessa reset () -määritystä määrittelemättömälle tai saavuttamattomalle jäsenelle.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} public function __unset ($ content) {echo 'Sitä kutsutaan automaattisesti, kun käytämme unset () -menetelmää luokan ulkopuolella. 'echo isset ($ this -> $ content)}} $ obj = new Student (' Ashok ', 30) // Alun perin annettu. unset ($ obj-> gender) unset ($ obj-> nimi) unset ($ obj-> reg)?>

  • __nukkua(): Tätä menetelmää kutsutaan ensin suoritettaessa serialize (). Se palauttaa objektin ominaisuusryhmän puhdistettaessa PHP-luokan objekteja ennen sarjallisuutta.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} public function __sleep () {echo 'Sitä kutsutaan, kun serialize () -metodia kutsutaan luokan ulkopuolelle. '$ this-> name = base64_encode ($ this-> name) return array (' name ',' reg ') // Sen on palautettava arvo, jonka elementit ovat palautettujen ominaisuuksien nimi. }} $ obj = new Student ('Ashok') // Alun perin annettu. echo serialize ($ obj) echo ''?>

  • __herätä(): Tätä menetelmää kutsutaan, kun deserialisaatio () suoritetaan. Se kääntäisi työn palauttaa esineiden ominaisuudet ja resurssit deserialisoinnin () perusteella.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} public function __sleep () {echo 'Sitä kutsutaan, kun serialize () -metodia kutsutaan luokan ulkopuolelle. '$ this-> name = base64_encode ($ this-> name) return array (' name ',' reg ') // Sen on palautettava arvo, jonka elementit ovat palautettujen ominaisuuksien nimi. } public function __wakeup () {echo 'Sitä kutsutaan, kun unserialize () -menetelmää kutsutaan luokan ulkopuolelle. '$ this-> name = 2 $ this-> gender =' Male '}} $ obj = new Student (' Ashok ') // Alun perin annettu. var_dump (serialize ($ obj)) var_dump (unserialize (serialize ($ obj)))?>

  • __toString (): Tätä menetelmää kutsutaan käytettäessä kaiku-menetelmää objektin tulostamiseen suoraan. Sen odotetaan palauttavan merkkijonon arvon käytettäessä luokan ilmentymiä PHP-käskyjen kanssa.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} public function __toString () {return 'go go go'}} $ obj = new Student ('Ashok') // Alun perin määritetty. echo $ obj?>

mikä on sqoop hadoopissa
  • __vedota(): Tämä menetelmä on määritelty luokassa, jota kutsutaan yritettäessä kutsua objektia kutsutoiminnolla.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} public function __invoke () {echo 'This is a object'}} $ obj = new Student ('Ashok') // Alun perin määritetty . $ obj ()?>

  • __set_state ($ array): Tätä menetelmää kutsutaan kutsuttaessa var_export (). Se on staattinen menetelmä, joka vedetään objektiominaisuuksia matriisin viemisen aikana, ja odottaa tällaisen taulukon muuttujan argumenttina.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender}} $ obj = new Student ('Ashok') // Alun perin annettu. var_export ($ obj)?>

  • __klooni(): Tätä menetelmää kutsutaan, kun objekti kopioidaan.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} public function __clone () {echo __METHOD __. 'kloonaat objektin. '}} $ obj = new Student (' Ashok ') // Alun perin annettu. $ obj2 = klooni $ obj var_dump ('object1:') var_dump ($ obj) echo '' var_dump ('object2:') var_dump ($ obj2)?>

  • __virheenkorjaustiedot(): Tätä menetelmää kutsutaan var_dump () -toiminnolla, kun objektia kaadetaan saadakseen näytettävät ominaisuudet. Jos menetelmää ei ole määritelty objektille, kaikki julkiset, suojatut ja yksityiset ominaisuudet näytetään.
prop = $ val} public function __debugInfo () {return ['propSquared' => $ this-> prop ** 2,]}} var_dump (uusi näyte (22))?>

Tämän avulla olemme päässeet tämän maagisen menetelmän loppuun PHP-artikkelissa. Toivon, että sait käsityksen erilaisista taikakeinoista PHP: ssä.

Katso Edureka, luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, joka levisi ympäri maailmaa.

Onko sinulla kysymys meille? Mainitse se kommenttiosassa ” Taika Menetelmät vuonna PHP ”Ja palaan takaisin sinuun.