itse vs. tämä PHP ssä

PHP tukee luokkia ja muita oliopohjaisia ​​rakenteita. itseTämäVoidaan käyttää staattisissa toiminnoissa Joo Ei saavutettavissa oleva luokamuuttuja ja menetelmät self :: $ tämä-> (Huomaa, että PHP> 5.3 sallii $: n käytön staattisten muuttujien kanssa käytä tätä: :: $ foo. $ this-> foo on edelleen määrittelemätön, jos $ foo on staattinen muuttuja.) Tarvitsee toteutetun objektin Ei Joo

itse vs. tämä PHP: ssä - esimerkkejä

luokan esimerkkiClass julkinen staattinen $ foo; julkinen $ bar; julkinen toiminto regularFunction () echo $ this-> bar;  julkinen staattinen toiminto staticFunction () kaiku itse :: $ foo;  julkinen staattinen toiminto elseStatFn () itse :: staticFunction ();  julkinen toiminto regularFnUsingStaticVar () kaiku itse :: $ foo;  // HUOMAUTUS: PHP 5.3: sta alkaen $ this :: $ -palkin käyttäminen itsensä sijasta: $ bar on sallittu exampleClass :: $ foo = "Hei"; $ obj = uusi esimerkkiClass (); $ obj-> bar = "Maailma!"; exampleClass :: staticFunction (); / * tulostaa hei * / $ obj-> normalFunction (); / * tulostaa maailmaa! * / 

Staattiset toiminnot voivat käyttää vain staattisia muuttujia. Staattisiin funktioihin ja muuttujiin viitataan self ::functionName () tai self ::variableName. Edellä esitetyssä esimerkissä staattisille muuttujille viitataan luokan nimellä (esimerkkiClass :: $ foo) tai, jos self :: (itse :: $ foo), kun sitä käytetään staattisessa menetelmässä [nimeltään staticFunction ()] luokan.

Luokan säännölliset toiminnot ja muuttujat tarvitsevat objektikontekstin, johon viitataan. Ne eivät voi olla olemassa ilman objektiyhteyttä. Kohdekontekstin tarjoaa $ tätä. Yllä olevassa esimerkissä $ -palkki on säännöllinen muuttuja, joten siihen viitataan nimellä $ obj-> palkki (muuttujan olosuhteissa obj) tai $ this-> bar (taas objektiyhteydessä objektimenetelmässä).

itse ei käytä edellistä $ koska itse ei merkitse muuttujaa, vaan luokkarakenne itsessään. $ tätä viittaa tiettyyn muuttujaan, joten sillä on edeltävä $.

Viitteet

  • Staattinen avainsana - PHP.net