V , posebne funkcije je mogoče definirati tako, da jih je mogoče samodejno poklicati in ne zahteva nobenega klica funkcije za izvajanje kode znotraj teh funkcij. Ta funkcija je na voljo v posebni metodi, imenovani čarovniške metode. V tem članku bomo obravnavali najboljše čarobne metode v PHP.
Kaj so čarovniške metode v PHP?
Metode, ki se začnejo z dvema podčrtajema (__), se v PHP na splošno imenujejo čarovniške metode. Imena teh metod so omejena na nekatere sezname PHP podprte ključne besede, ki so rezervirane. Nobene funkcije torej ne bi smeli definirati z imenom PHP čarobnih metod.
razred skenerja v primerih Java
Običajno mora te funkcije določiti uporabnik in jih ni treba izrecno klicati.
Seznam čarovniških metod v PHP
- __construct ()
- __destruct ()
- __call ($ zabava, $ arg)
- __callStatic ($ zabava, $ arg)
- __get ($ lastnost)
- __set ($ lastnost, $ vrednost)
- __isset ($ vsebina)
- __unset ($ vsebina)
- __spaj ()
- __zbudi se()
- __toString ()
- __invoke ()
- __set_state ($ array)
- __clone ()
- __debugInfo ()
- __construct (): To je metoda, ki se samodejno pokliče po ustvarjanju predmeta. Tu lahko definirate poljubno število argumentov, ki bodo posredovani, ko bodo ustvarjeni predmeti.
vzorec razreda {funkcija user_def () {echo 'uporabniško določen konstruktor'} funkcija __construct () {echo 'vnaprej določeni konstruktor'}} $ obj = nov vzorec ()?>
- __destruct (): Destructor je pogosta značilnost objektno usmerjenega jezika, ki se sproži takoj, ko na določen predmet ni nobenih drugih sklicev.
user_def () // preverite, ali je objekt uničen ali ne, odmeva is_object ($ obj). ' '?>
- __call ($ zabava, $ arg): Ta metoda se pokliče, kadar se pokliče nedefinirana ali nedostopna metoda. Kar pomeni, da se pokliče, ko se na objektu pokliče nedefinirana ali nedostopna metoda.
run ('učitelj') // Če je v objektu poklicana metoda, ki ne obstaja, bo samodejno poklicana metoda __call (). $ obj-> eat ('ashok', 'oranžna') $ obj-> user_define ()?>
- __callStatic ($ zabava, $ arg): Ta metoda se pokliče, kadar se nedefinirana ali nedostopna metoda prikliče na statičen način.
user_define ()?>
- __get ($ lastnost): Ta metoda se uporablja za pridobivanje vrednosti za lastnosti razreda, ki jih dinamično ustvari preobremenitev lastnosti PHP.
name = $ name $ this-> reg = $ reg} javna funkcija __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) // Objekt postavite v razred Student in dodelite začetne vrednosti na lastnosti s konstruktorjem. echo 'Ime :'. $ obj-> ime. '' // Ko se dostopa do zasebne lastnine, se samodejno pokliče metoda __get (), tako da lahko vrednost lastnosti dobimo posredno. echo 'reg :'. $ obj-> reg. '' // Metoda __get () se samodejno pokliče , in vrne različne vrednosti glede na sam objekt. ?>
kako napisati skener v javi -
- __set ($ lastnost, $ vrednost): Ta metoda se uporablja za vnašanje vrednosti za lastnosti razreda, ki jih dinamično ustvari preobremenitev lastnosti PHP.
name = $ name $ this-> reg = $ reg} javna funkcija __set ($ lastnost, $ vrednost) {if ($ lastnost == 'reg') $ vrednost $ lastnost = $ vrednost javna funkcija fun () {echo 'My ime je '. $ this-> name.', Moja registrska številka je '. $ this-> reg}} $ obj = new Student (' Ashok ', 40) // Upoštevajte, da bo začetna vrednost spremenjena s kodo spodaj. $ obj-> name = 'Sushma' // Lastnost 'name' bo uspešno dodeljena. Če ni metode __set (), bo program vrgel izjemo. $ obj-> age = 16 // Lastnost 'reg' bo uspešno dodeljena. $ obj-> reg = 160 // 160 je neveljavna vrednost, zato je ne more dodeliti. $ obj-> zabava ()?>
- __isset ($ vsebina); Ta metoda bo poklicana med klicanjem isset () ali empty () za nedefiniranega ali nedostopnega člana. S funkcijo PHP isset () se prikliče samodejno med preverjanjem, ali je nastavljena zahtevana preobremenjena lastnost ali ne.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} javna funkcija __isset ($ content) {echo 'Lastnost {$ content} je zasebna method metoda __isset () se pokliče samodejno. 'echo isset ($ this -> $ content)}} $ obj = new Student (' Ashok ', 30) // Prvotno dodeljeno. echo isset ($ obj-> gender), '' echo isset ($ obj-> name), '' echo isset ($ obj-> reg), ''>
- __unset ($ vsebina): Ta metoda bo poklicana med klicem reset () za nedefiniranega ali nedostopnega člana.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} javna funkcija __unset ($ content) {echo 'Pokliče se samodejno, ko uporabljamo metodo unset () zunaj razreda. 'echo isset ($ this -> $ content)}} $ obj = new Student (' Ashok ', 30) // Prvotno dodeljeno. unset ($ obj-> gender) unset ($ obj-> name) unset ($ obj-> reg)?>
- __spaj (): Ta metoda se najprej pokliče med izvajanjem serialize (). Vrne matriko lastnosti predmeta za čiščenje predmetov razreda PHP pred serializacijo.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} javna funkcija __sleep () {echo 'Pokliče se, ko je metoda serialize () poklicana izven razreda. '$ this-> name = base64_encode ($ this-> name) return array (' name ',' reg ') // Vrniti mora vrednost, katere elementi so ime vrnjenih lastnosti. }} $ obj = new Student ('Ashok') // Prvotno dodeljeno. echo serialize ($ obj) echo ''?>
- __zbudi se(): Ta metoda se pokliče med izvajanjem deserializacije (). Delo v obratnem vrstnem redu bi obnovilo lastnosti in vire predmetov ob priklicu deserializacije ().
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} javna funkcija __sleep () {echo 'Pokliče se, ko je metoda serialize () poklicana izven razreda. '$ this-> name = base64_encode ($ this-> name) return array (' name ',' reg ') // Vrniti mora vrednost, katere elementi so ime vrnjenih lastnosti. } javna funkcija __wakeup () {echo 'Pokliče se, ko je metoda unserialize () poklicana zunaj razreda. '$ this-> name = 2 $ this-> gender =' Male '}} $ obj = new Student (' Ashok ') // Prvotno dodeljeno. var_dump (serialize ($ obj)) var_dump (unserialize (serialize ($ obj)))?>
- __toString (): Ta metoda bo poklicana med uporabo metode echo za neposredno tiskanje predmeta. Med uporabo primerkov razreda s stavki za tiskanje PHP naj bi vrnil vrednost niza.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} javna funkcija __toString () {return 'go go go'}} $ obj = new Student ('Ashok') // Prvotno dodeljeno. echo $ obj?>
- __invoke (): Ta metoda je definirana v razredu, ki bo poklican med poskusom klica predmeta na način klicanja funkcije.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} javna funkcija __invoke () {echo 'To je objekt'}} $ obj = new Student ('Ashok') // Prvotno dodeljeno . $ obj ()?>
- __set_state ($ array): Ta metoda se pokliče med klicem var_export (). To je statična metoda, ki se prikliče med izvozom matrike lastnosti objektov in pričakuje takšno spremenljivko polja kot njen argument.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender}} $ obj = new Student ('Ashok') // Prvotno dodeljeno. var_export ($ obj)?>
če stavki v poizvedbah sql
- __clone (): Ta metoda se pokliče pri kopiranju predmeta.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} javna funkcija __clone () {echo __METHOD __. 'objekt klonirate. '}} $ obj = new Student (' Ashok ') // Prvotno dodeljeno. $ obj2 = klon $ obj var_dump ('object1:') var_dump ($ obj) echo '' var_dump ('object2:') var_dump ($ obj2)?>
- __debugInfo (): To metodo med odmetavanjem predmeta pokliče var_dump (), da dobi lastnosti, ki bi morale biti prikazane. Če metoda ni definirana na objektu, bodo prikazane vse javne, zaščitene in zasebne lastnosti.
prop = $ val} javna funkcija __debugInfo () {return ['propSquared' => $ this-> prop ** 2,]}} var_dump (nov vzorec (22))?>
S tem smo v članku o PHP ugotovili konec te čarobne metode. Upam, da imate predstavo o različnih čarovniških metodah v PHP.
Oglejte si Edureka, zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev, razširjenih po vsem svetu.
Imate vprašanje za nas? Prosimo, navedite to v oddelku za komentarje v Magične metode v PHP ”In se vam oglasim.