Ako ste analizirali kodove bilo kojeg programa napisanog na php jeziku, onda ste sigurno naišli na takve posebne kodove u kodu. likovi:

-> (Crta i znak veće od)

:: (dvotočka)

Na primjer, konstrukcije s ovim izrazima mogu izgledati ovako:

Hello::hello_world(); q -> hello_world();

Da bismo razumjeli čemu služe ove konstrukcije, pogledajmo najjednostavniji primjer. Pretpostavimo da imamo jednostavan program "Hello world!".

Kreirajmo jednostavnu php datoteku i u nju upišimo sljedeći kod:

Class Hello ( funkcija hello_world () ( echo "Zdravo svijet"; ) )

Sada razmislite o tome kako možete izvršiti funkciju hello_world().

Da funkcija hello_world() nije u Hello klasi, onda bismo je nazvali vrlo jednostavno:

Zdravo svijete();

Kao rezultat toga, na ekranu bismo imali natpis "Zdravo, svijete". Ali, najvjerovatnije, ako ste pokušali riješiti problem na ovaj način, dobili ste grešku na ekranu:

Fatalna greška: Poziv nedefinisane funkcije hello_world() u …/test.php na mreži…

Sve je tačno, jer funkcija je u klasi, onda morate reći računaru da je treba potražiti u klasi Hello. Ako se to ne uradi, onda ništa neće raditi.

Kako se takve informacije mogu prenijeti na kompjuter?

Ovdje postoji nekoliko opcija. Pogledajmo svaki posebno.

1 opcija. Kreiranjem instance klase.

$q = novi Zdravo;

Sa ovom linijom kreiramo takozvanu instancu klase Hello. Nakon ove operacije, možemo slobodno pristupiti funkciji koja nam je potrebna preko ove instance, koja je u ovom slučaju pohranjena u varijablu $q.

$q -> hello_world();

Konstrukcija "->" postaje povezujuća veza između instance klase i funkcije.

Sada sve radi. Ura! Trebali biste vidjeti "Zdravo svijete" na ekranu.

Opcija 2. Koristeći konstrukciju dvostrukog debelog crijeva:

Ova opcija je mnogo lakša. Ne morate čak ni kreirati instance ovdje. Mi samo pišemo.

Hello::hello_world();

Možete provjeriti da li će se funkcija uspješno završiti.

Nadam se da nakon čitanja ove napomene sada razumijete da se "->" i "::" koriste za pristup željenoj funkciji u generiranoj klasi.

Uz pomoć istih konstrukcija možemo pristupiti varijablama koje se nalaze u klasama. Jedina razlika je u tome što ne morate stavljati zagrade na kraj. Na primjer:

Zdravo svijete;

Sa ovom konstrukcijom se pozivamo na promenljivu svet, koja se nalazi u klasi Hello.

Posebno se često takve konstrukcije mogu naći prilikom raščlanjivanja koda različitih sistema za upravljanje lokacijama. Pogledajte izvorni kod takvih sistema kao što su Joomla, WordPress, itd. Sada znate čemu sve ovo služi.

Više mojih PHP tutorijala za početnike.

Pored odgovora koji se tiču ​​PHP-ove upotrebe dvije dvotočke kao "operatora rezolucije opsega":

Osim toga, koristi se dvostruka dvotočka:

    Za pretvaranje nekvalifikovanog, kvalificiranog ili pseudonimnog naziva klase u njegov potpuno kvalificirani oblik, i

    Za pozivanje metode klase __callStatic.

Za pretvaranje naziva klase u njen potpuno kvalificirani oblik dodavanjem "::class"

Dvije dvotočke praćene ključnom riječi "class" nakon navedenog naziva klase puno ime ove klase kao string. To jest, "ClassName::class" se pretvara u potpuno kvalificirano ime "ClassName". Pogledajte (A) Priručnik: Klase i objekti: Osnove, (B) Priručnik: Klase i objekti: Konstante klasa i (C) Priručnik: Referenca za jezik: Konstante

Sintaksa "::class" korisna je u imenskom prostoru za izvođenje potpunog imena klase iz njenog nekvalifikovanog ili kvalifikovanog oblika, ili iz aliasa njenog imena.

Čini se da sintaksa "::class" funkcionira za rješavanje imena interfejsa kao i imena klasa, iako se čini da to nije dokumentovano od strane gore citiranih izvora.

Unutar klase, sintaksa također radi sa "self::class" kao što je spomenuto u "::class" RFC-u iznad.

nekoliko primjera:

fullName(), PHP_EOL; // izlazi: MyNamespace\TheirClass

Za pozivanje "__callStatic"

Dvije dvotočke se mogu koristiti za "pozivanje" imena statičkog metoda koje klasa nije deklarirala. Ovo poziva metodu klase "__callStatic" ako je deklarirala. Metoda __callStatic tada može "dinamički" izabrati kako će se nositi s pozivom. U PHP-u se to zove "preopterećenje" sa "magičnom metodom" __callStatic .

handleOrder($argumenti); ) vrati "Žao mi je, ne možemo vam pomoći sa " . lcfirst($item) . "."; ) ) imenski prostor OurCompany\Specialists; class Car ( javna funkcija handleOrder($arguments) ( return "Mogu li vam pomoći sa $arguments autom?"; ) ) class Kamion (javna funkcija handleOrder($arguments) (vratite "Mogu li vam pomoći sa $arguments kamionom?" "; ) ) koristite OurCompany\Orders\Intake; echo Intake::orderCar("red"), PHP_EOL; // izlazi: Mogu li vam pomoći oko crvenog auta? echo Intake::orderTruck("pickup"), PHP_EOL; // izlazi: Mogu li vam pomoći oko kamioneta? echo Intake::orderShoes("suede"), PHP_EOL; // izlazi: Žao mi je, ne možemo vam pomoći oko cipela.

Možda ste primijetili koliko često koristim ova dva pseudo-elementa u svojim tutorijalima. Zašto mi se sviđaju? Zato što su toliko zgodni za upotrebu da čak i ne morate da dodajete dodatne HTML elemente. Međutim, ovaj članak nije o prednostima pseudoelemenata.

Ovaj članak je posvećen razjašnjavanju jednom za svagda svih nesporazuma u vezi sa sintaksom pseudoelemenata.

Pseudo šta?

Pseudoelementi se tako nazivaju jer nisu pravi HTML elementi. Na primjer, u HTML-u ne postoje oznake prije i poslije, ali u CSS-u možete primijeniti stilove na elemente :before i :after.

Jedna ili dva dvotočka?

Nema razlike između :prije i::prije ili između :poslije i::poslije. Sintaksa s dvije dvotočke je specifična za CSS3.

http://www.w3.org/TR/css3-selectors/#pseudo-elements ima ovaj paragraf:

Ovaj znak (::) je uveden da razlikuje pseudo-klase od pseudo-elemenata. Za kompatibilnost sa već postojećim stilovima, pseudoelementi u CSS 1 i 2 se takođe mogu specificirati sa jednom dvotočkom (posebno, :prvi red, :prvo slovo, :pre i :posle).

Rezimirajući

IE 7 i ranije ne podržavaju navedene pseudoelemente. Ali IE 8 radi, i to je dobar (i jedini) razlog za korištenje sintakse s jednom dvotočkom.

Bitan!

Imajte na umu da se sva ova priča o jednoj ili dvije dvotočke odnosi samo na pseudoelemente, a ne na pseudoklase.

Kako pišeš?

Napišite u komentarima koju sintaksu koristite i iz kojih razloga.

Dakle, dvotočka je separator interpunkcije. Za razliku od tačke, uzvika i upitnika, i tri tačke, nema funkciju razdvajanja, odnosno ne razdvaja rečenice u tekstu jednu od druge. Dvotačka se stavlja samo unutar rečenice i stoga označava da će se nakon nje izjava nastaviti.

Dvotočka se može naći u jednostavnim i složenim rečenicama. U jednostavnoj rečenici odvaja i ističe dijelove iskaza, a u složenoj ima i semantičku ulogu: ukazuje na semantičke odnose između dijelova nepovezane složene rečenice.

Dakle, koji je ispravan način da koristite dvotočku, a da ne napravite greške i da ga ne zbunite s drugima? Pogledajmo glavne slučajeve.

Dvotačka u jednostavnoj rečenici

Pravilo 1. Dvotačka u rečenici s homogenim članovima

Ako je generalizirajuća riječ ispred homogenih članova, onda je iza nje potrebno dvotočko, na primjer: sneg je ležao svuda: na krovovima kuća, na ogradama, na travnjacima, na automobilima.

U ovoj rečenici riječ svuda sumira niz sličnih okolnosti. Uopštavajuća riječ se nalazi ispred homogenih članova, pa stoga iza nje stoji dvotočka.

Pravilo 2. Dvotačka u rečenicama sa kvalifikacionim rečima

Kada se uopštavaju riječi u rečenici, mogu se koristiti kvalificirajuće riječi: kao na primjer, na primjer, kao što, naime, ispred koje se nalazi zarez i iza njega dvotačka. Na primjer: sneg je ležao svuda, naime: na krovovima kuća, na ogradama, na travnjacima, na automobilima.

U ovoj rečenici, zajedno sa generalizirajućom riječju svuda koristio prefinjenost svoje konstrukcije "naime" , nakon čega slijedi niz homogenih članova, pa ga slijedi dvotočka.

Pravilo 3. Dvotočka u konstrukcijama s direktnim govorom

Ako direktni govor slijedi iza riječi autora, tada se ispred njega stavlja dvotočka, a sam direktni govor stavlja se pod navodnike i prva riječ direktnog govora se piše velikim slovom: Učiteljica je rekla: "Zdravo djeco!". Također, ako direktni govor razbija riječi autora u tekstu, onda se ispred njega stavlja dvotočka, na primjer: Rekavši: "Zdravo, djeco!", učiteljica je ušla u učionicu. Nakon direktnog govora mora se staviti zarez.

Dvotačka u složenoj rečenici

Pravilo 4. Dvotačka se može staviti između dijelova nesindikalne složene rečenice (BSP) u sljedećim slučajevima.

  • Drugi dio BSP objašnjava ono što je rečeno u prvom (između dijelova rečenice možete umetnuti " naime"), na primjer: U narodu postoji takav znak: lastavice lete nisko na kišu; Katya piše vrlo kompetentno: nikada ne griješi u riječima, ispravno postavlja znakove interpunkcije. U ovim nesindikalnim složenim rečenicama, u drugom dijelu, dato je objašnjenje onoga o čemu se govori u prvom. Između dijelova rečenica možete umetnuti " naime": U narodu postoji izreka (naime): lastavice lete nisko iznad vode na kišu. Stoga se u gornjim rečenicama koristi dvotačka.

  • Drugi dio BSP otkriva razlog ono što je rečeno u prvom (veznici se mogu umetnuti između dijelova rečenice: jer, jer), na primjer: Katya piše vrlo kompetentno: puno čita, uči poeziju napamet, trenira pamćenje; Uskoro će kiša: laste lete nisko iznad vode. U ovim BSP-ima, drugi deo potkrepljuje, ukazuje na razlog za ono što je rečeno u prvom. Spojevi se mogu umetnuti između dijelova: jer, jer. Uskoro će padati kiša (jer): lastavice lete nisko iznad vode. Stoga se u takvim rečenicama koristi dvotačka.

  • Drugi dio BSP dopunjuje, otkriva ono što je rečeno u prvom (takve rečenice su sinonimi za složene rečenice sa klauzulom objašnjenja, pa se može ubaciti unija između delova BSP-a šta). Na primjer: Katya zna: čitanje knjiga nije samo zanimljivo, već i vrlo korisno za učenje; Ljudi kažu: lastavice lete nisko iznad vode na kišu. U podacima BSP u drugom dijelu otkriva se značenje onoga o čemu se govori u prvom dijelu. Ako su dijelovi takve rečenice povezani sindikatom šta, onda dobijete složenu rečenicu s klauzulom objašnjenja: Narod kaže (šta,): lastavice lete nisko iznad vode na kišu. U rečenicama ovog tipa koristi se dvotočka.

  • U prvom dijelu rečenice izostavljaju se glagoli: i vidio i čuo i osjetio, na primjer: Podigao sam glavu: zrak sunca se probio kroz oblake, obasjavši čistinu jarkom svetlošću; Okrenuo se: odjek užurbanih koraka čuo se vrlo blizu. Ove rečenice su također sinonim za složenu podređenu rečenicu s objašnjenjem; glagoli tipa su izostavljeni u prvom dijelu: i video i čuo spoj se može umetnuti između dijelova šta. Podigao sam glavu (i vidio to): zrak sunca se probio kroz oblake, obasjavši čistinu jakom svjetlošću.


Dvotočka vs crtica

Glavna poteškoća u korištenju dvotočka je to što je ponekad lako pomiješati ovaj znak interpunkcije s drugim - crticom. Nedavno se ovi znakovi često koriste paralelno, odnosno u istim slučajevima mogu se staviti i crtica i dvotočka. Na primjer: I sudije su odlučile: ako padne kiša, takmičenje će biti poništeno; Primetio sam prvi kamen, odlučio - ima ovde blago, počeo sam da čačkam(Tendryakov), Naravno da je onpromijenio(: –) pogrbljen, siv, naboranu uglovima usana; Ulazim(: ) sve je tiho; Ne izgovarajte ove riječi pred njim(: ) može biti uvrijeđen; Sve je zanimalo samo jedno pitanje(: ) kako izaći iz situacije što je prije moguće; To je značilo jedno(: ) treba da se rastanemo.

Takve opcije se smatraju jednakim, možete koristiti i crticu i dvotočku bez straha da ćete pogriješiti. Međutim, treba imati na umu da crtica, osim sintaktičkih funkcija, obavlja i emocionalne i ekspresivne, odnosno ukazuje na emocionalnost iskaza, naglašava njegovu ekspresivnost. Stoga, ako rečenica ne nosi takva značenja, neutralna je, trebate izbjegavati upotrebu crtice i staviti dvotočku, slijedeći pravila koja smo razmotrili.