Co oznaczają dwa dwukropki w PHP? Dwukropek: gdzie, kiedy i dlaczego należy wstawić dwukropek. Jak piszesz.

Jeśli analizowałeś kody jakichkolwiek programów napisanych w PHP, prawdopodobnie natknąłeś się na takie szczególne rzeczy w kodzie. postacie:

-> (Myślnik i znak większości)

:: (Podwójny dwukropek)

Na przykład konstrukcje zawierające te wyrażenia mogą wyglądać następująco:

Witaj::witaj_świecie(); q -> witaj_świecie();

Aby zrozumieć, dlaczego te struktury są potrzebne, spójrzmy na najprostszy przykład. Załóżmy, że mamy prosty program „Witaj, świecie!”.

Stwórzmy prosty plik php i napiszmy w nim następujący kod:

Klasa Hello ( funkcja hello_world () ( echo "Witaj świecie"; ) )

Zastanów się teraz, jak wykonać funkcję hello_world().

Gdyby funkcja hello_world() nie znajdowała się w klasie Hello, nazwalibyśmy ją bardzo prosto:

Witaj świecie();

W rezultacie na ekranie pojawiłyby się słowa „Hello world”. Ale najprawdopodobniej, jeśli próbowałeś rozwiązać problem w ten sposób, na ekranie pojawił się błąd:

Błąd krytyczny: wywołanie niezdefiniowanej funkcji hello_world() w …/test.php on-line…

Wszystko się zgadza, bo funkcja znajduje się w klasie, to musisz powiedzieć komputerowi, że należy jej szukać w klasie Hello. Jeśli tego nie zrobisz, to nic nie zadziała.

W jaki sposób można przesłać takie informacje do komputera?

Istnieje kilka opcji tutaj. Przyjrzyjmy się każdemu z osobna.

Opcja 1. Poprzez utworzenie instancji klasy.

$q = nowy Witam;

Za pomocą tej linii tworzymy tzw. instancję klasy Hello. Po tej operacji możemy swobodnie uzyskać dostęp do potrzebnej nam funkcji poprzez tę instancję, która w tym przypadku jest przechowywana w zmiennej $q.

$q -> witaj_świecie();

Konstrukcja „->” staje się łącznikiem pomiędzy instancją klasy a funkcją.

Teraz wszystko działa. Brawo! Powinieneś zobaczyć na ekranie „Hello World”.

Opcja 2. Korzystanie z konstrukcji dwukropka:

Ta opcja jest jeszcze znacznie prostsza. Nie musisz nawet tworzyć tutaj żadnych instancji. Właśnie piszemy.

Witaj::witaj_świecie();

Możesz sprawdzić, czy funkcja zostanie pomyślnie wykonana.

Mam nadzieję, że po przeczytaniu tej notatki rozumiesz teraz, że „->” i „::” służą do uzyskania dostępu do żądanej funkcji w utworzonej klasie.

Używając tych samych konstrukcji, możemy uzyskać dostęp do zmiennych znajdujących się w klasach. Jedyna różnica polega na tym, że nie trzeba wstawiać nawiasów na końcu. Na przykład:

Witaj świecie;

Dzięki tej konstrukcji uzyskujemy dostęp do zmiennej world, która znajduje się w klasie Hello.

Konstrukcje takie można spotkać szczególnie często analizując kod różnych systemów zarządzania stronami internetowymi. Spójrz na kod źródłowy systemów takich jak Joomla, WordPress itp. Teraz już wiesz, po co to wszystko.

Więcej moich tutoriali PHP dla początkujących.

Dwukropek jest więc znakiem interpunkcyjnym. W odróżnieniu od kropki, wykrzyknika i znaku zapytania oraz wielokropka nie pełni funkcji oddzielającej, czyli nie oddziela od siebie zdań w tekście. Dwukropek umieszcza się tylko w zdaniu i dlatego wskazuje, że wypowiedź będzie kontynuowana po nim.

Dwukropki można znaleźć w zdaniach prostych i złożonych. W zdaniu prostym dzieli i podkreśla części wypowiedzi, w zdaniu złożonym pełni także rolę semantyczną: wskazuje relacje semantyczne pomiędzy częściami zdania złożonego niespójnego.

Jak zatem poprawnie używać dwukropka, nie popełniając błędów i nie myląc go z innymi? Spójrzmy na główne przypadki.

Dwukropek w prostym zdaniu

Zasada 1. Dwukropek w zdaniu z jednorodnymi członkami

Jeśli słowo uogólniające występuje przed członkami jednorodnymi, po nim należy postawić dwukropek, na przykład: Leżał śnieg wszędzie: na dachach domów, na płotach, na trawnikach, w samochodach.

W tym zdaniu słowo wszędzie uogólnia szereg podobnych okoliczności. Słowo uogólniające znajduje się przed członkami jednorodnymi, dlatego po nim następuje dwukropek.

Zasada 2. Dwukropek w zdaniach z kwalifikującymi się słowami

Kiedy w zdaniu używane są słowa uogólniające, można użyć słów wyjaśniających: tak, na przykład, tak, a mianowicie, poprzedzone przecinkiem i zakończone dwukropkiem. Na przykład: Leżał śnieg wszędzie, mianowicie: na dachach domów, na płotach, na trawnikach, na samochodach.

W tym zdaniu razem ze słowem uogólniającym wszędzie konstrukcja wyjaśniająca jej zastosowanie "mianowicie" , po którym następuje seria jednorodnych terminów, zatem następuje po nim dwukropek.

Zasada 3. Dwukropek w konstrukcjach z bezpośrednią mową

Jeżeli po słowach autora następuje mowa bezpośrednia, wówczas przed nią umieszcza się dwukropek, a samą mowę bezpośrednią ujęto w cudzysłów, a pierwsze słowo mowy bezpośredniej zapisuje się wielką literą: Nauczyciel powiedział: „Witajcie, dzieci!” Ponadto, jeśli mowa bezpośrednia łamie słowa autora w tekście, przed nią umieszcza się dwukropek, na przykład: Mówiąc: „Witajcie dzieci!”, nauczyciel wszedł do klasy. Po bezpośredniej mowie należy postawić przecinek.

Dwukropek w zdaniu złożonym

Zasada 4. Dwukropek można umieścić pomiędzy częściami zdania złożonego niebędącego związkiem (BSP) w następujących przypadkach.

  • Druga część BSP wyjaśnia co zostało powiedziane w pierwszej (pomiędzy częściami zdania możesz wstawić „ mianowicie"), Na przykład: Wśród ludzi jest taki znak: jaskółki latają nisko, gdy pada deszcz; Katya pisze bardzo kompetentnie: nigdy nie popełnia błędów w słowach i poprawnie umieszcza znaki interpunkcyjne. W tych niezwiązkowych zdaniach złożonych druga część zawiera wyjaśnienie tego, co jest omawiane w pierwszej. Pomiędzy częściami zdań możesz wstawić „ mianowicie": Jest taki znak wśród ludzi (mianowicie): jaskółki latają nisko nad wodą w stronę deszczu. Dlatego w powyższych zdaniach znajduje się dwukropek.

  • Druga część BSP ujawnia przyczynę o czym była mowa w pierwszej części (można wstawić spójniki pomiędzy częściami zdania: odkąd, ponieważ), Na przykład: Katya pisze bardzo kompetentnie: dużo czyta, uczy się poezji na pamięć, ćwiczy pamięć; Wkrótce będzie padać: jaskółki latają nisko nad wodą. W tych BSP druga część uzasadnia i wskazuje powód tego, co zostało powiedziane w pierwszej. Można wstawiać spójniki pomiędzy częściami: odkąd, ponieważ. Wkrótce będzie padać (ponieważ): jaskółki latają nisko nad wodą. Dlatego w takich zdaniach używa się dwukropka.

  • Druga część BSP uzupełnia, odsłania co zostało powiedziane w pierwszym (takie zdania są synonimem zdań złożonych z klauzulą ​​wyjaśniającą, dlatego między częściami BSP można wstawić spójnik Co). Na przykład: Katya wie: czytanie książek jest nie tylko interesujące, ale także bardzo przydatne w nauce; Ludzie mówią: kiedy pada deszcz, jaskółki latają nisko nad wodą. Dane BSP w drugiej części ujawniają znaczenie tego, co zostało omówione w pierwszej. Jeżeli części takiego zdania są połączone spójnikiem Co, wtedy otrzymasz złożone zdanie z klauzulą ​​wyjaśniającą: Ludzie mówią (Co,): jaskółki latają nisko nad wodą w stronę deszczu. Zdania tego typu poprzedza się dwukropkiem.

  • W pierwszej części zdania pominięto czasowniki: i widział, i słyszał, i czuł, Na przykład: Podniosłem głowę: promień słońca przebił się przez chmury, oświetlając polanę jasnym światłem; Odwrócił się: echo pośpiesznych kroków było słychać bardzo blisko. Zdania te są również synonimami złożonych zdań podrzędnych ze zdaniami objaśniającymi; w pierwszej części czasowniki takie jak: i widziałem i słyszałem, Można wstawić spójnik pomiędzy częściami Co. Podniosłem głowę (i widziałem to): promień słońca przebił się przez chmury, oświetlając polanę jasnym światłem.


Dwukropek kontra myślnik

Główną trudnością w używaniu dwukropka jest to, że czasami łatwo jest pomylić ten znak interpunkcyjny z innym - myślnikiem. Ostatnio znaki te są często używane równolegle, to znaczy w tych samych przypadkach można umieścić zarówno myślnik, jak i dwukropek. Na przykład: A sędziowie zdecydowali: jeśli będzie padać, zawody zostaną odwołane; Zauważyłem pierwszy kamień, zdecydowałem, że jest tu skarb, więc zacząłem szperać(Tendryakow), Oczywiście, że onzmieniony(: –) zgarbiony, szary, ze zmarszczkamiw kącikach ust; Wchodzę(: ) wszystko jest ciche; Nie mów tych słów przy nim.(: ) może się obrazić; Wszystkich interesowało tylko jedno pytanie(: ) jak najszybciej wyjść z tej sytuacji; Oznaczało to jedno(: ) trzeba się rozstać.

Takie opcje są uważane za równe, możesz używać zarówno myślnika, jak i dwukropka, bez obawy, że popełnisz błąd. Musimy jednak pamiętać, że myślnik oprócz funkcji składniowych pełni także funkcje uczuciowe i ekspresyjne, czyli wskazuje na emocjonalność wypowiedzi i podkreśla jej wyrazistość. Jeśli zatem zdanie nie niesie takich znaczeń i jest neutralne, należy unikać myślnika i postawić dwukropek, kierując się zasadami, które omówiliśmy.

Pewnie zauważyłeś, jak często na lekcjach wykorzystuję te dwa pseudoelementy. Dlaczego je lubię? Ponieważ są tak wygodne w użyciu, że nie trzeba nawet dodawać dodatkowych elementów HTML. Jednak ten artykuł nie jest o zaletach pseudoelementów.

Artykuł ten ma na celu raz na zawsze wyjaśnić wszelkie nieporozumienia dotyczące składni pseudoelementów.

Pseudo-co?

Pseudoelementy są tak nazywane, ponieważ nie są prawdziwymi elementami HTML. Na przykład HTML nie ma znaczników before i after, ale w CSS możesz stylizować elementy :before i :after.

Jeden czy dwa dwukropki?

Nie ma różnicy pomiędzy :before i ::before lub pomiędzy :after i ::after. Składnia podwójnego dwukropka jest specyficzna dla CSS3.

Pod adresem http://www.w3.org/TR/css3-selectors/#pseudo-elements znajduje się następujący akapit:

Ten symbol (::) został wprowadzony w celu odróżnienia pseudoklas od pseudoelementów. Aby zapewnić zgodność z istniejącymi arkuszami stylów, pseudoelementy w CSS 1 i 2 można również określić za pomocą pojedynczego dwukropka (w szczególności: pierwsza linia, : pierwsza litera, : przed i : po).

Podsumujmy

IE 7 i starsze wersje nie obsługują wymienionych pseudoelementów. Ale IE 8 obsługuje tę funkcję i jest to dobry (i jedyny) powód, aby używać składni z pojedynczym dwukropkiem.

Ważny!

Proszę pamiętać, że całe to mówienie o jednym lub dwóch dwukropkach dotyczy tylko pseudoelementów, a nie pseudoklas.

Jak piszesz?

Napisz w komentarzach, jakiej składni używasz i z jakich powodów.

Oprócz odpowiedzi dotyczących użycia przez PHP dwóch dwukropków jako „operatora rozpoznawania zakresu”:

Ponadto używany jest podwójny dwukropek:

    Aby przekonwertować niekwalifikowaną, kwalifikowaną lub aliasową nazwę klasy na jej w pełni kwalifikowaną formę, oraz

    Aby wywołać metodę klasy __callStatic.

Aby przekonwertować nazwę klasy na jej w pełni kwalifikowaną formę, dodając „::class”

Dwa dwukropki, po których następuje słowo kluczowe „class” po nazwie klasy, dostarczają w postaci ciągu znaków pełną nazwę tej klasy. Oznacza to, że „NazwaKlasy::klasa” jest konwertowana na pełną nazwę „NazwaKlasy”. Zobacz Podręcznik (A): Klasy i obiekty: Podstawy, Podręcznik (B): Klasy i obiekty: Stałe klas oraz Podręcznik (C): Dokumentacja językowa: Stałe

Składnia „::class” jest użyteczna w przestrzeni nazw do uzyskania w pełni kwalifikowanej nazwy klasy z jej niekwalifikowanej lub kwalifikowanej formy lub z aliasu jej nazwy.

Wydaje się, że składnia „::class” działa przy rozpoznawaniu nazw interfejsów, a także nazw klas, chociaż nie wydaje się, aby było to udokumentowane w źródłach, do których prowadzą linki powyżej.

W klasie składnia działa również z „self::class”, jak wspomniano w dokumencie RFC „::class”, do którego link znajduje się powyżej.

Kilka przykładów:

pełnaNazwa(), PHP_EOL; // dane wyjściowe: Mojaprzestrzeń_nazw\TheirClass

Aby wywołać „__callStatic”

Do „wywołania” nazwy metody statycznej, której klasa nie zadeklarowała, można użyć dwóch dwukropków. Wywołuje to metodę klasy „__callStatic”, jeśli ją zadeklarowano. Metoda __callStatic może następnie „dynamicznie” wybrać sposób obsługi połączenia. W PHP nazywa się to „przeciążaniem” przy użyciu „magicznej metody” __callStatic .

handleOrder($argumenty); ) zwróć „Przykro nam, nie możemy Ci pomóc z”. lcfirst($element) . „.”; ) ) przestrzeń nazw NaszaFirma\Specjaliści; class Car ( funkcja publiczna handleOrder($arguments) ( return "Czy mogę pomóc z samochodem $arguments?"; ) ) class Truck ( funkcja publiczna handleOrder($arguments) ( return "Czy mogę pomóc z ciężarówką $arguments? "; ) ) użyj opcji NaszaFirma\Zamówienia\Przyjęcie; echo Intake::orderCar("czerwony"), PHP_EOL; // dane wyjściowe: Czy mogę ci pomóc z czerwonym samochodem? echo Intake::orderTruck("odbiór"), PHP_EOL; // dane wyjściowe: Czy mogę pomóc z pickupem? echo Intake::orderShoes("zamsz"), PHP_EOL; // wyniki: Przykro nam, nie możemy ci pomóc z butami.

Najnowsze materiały w dziale:

Praktyczna praca z ruchomą mapą gwiazd
Praktyczna praca z ruchomą mapą gwiazd

Pytania testowe mające na celu ocenę cech osobistych urzędników służby cywilnej
Pytania testowe mające na celu ocenę cech osobistych urzędników służby cywilnej

Test „Określenie temperamentu” (G. Eysenck) Instrukcja: Tekst: 1. Czy często odczuwasz potrzebę nowych doświadczeń, otrząsnięcia się,...

Michael Jada „Spal swoje portfolio”
Michael Jada „Spal swoje portfolio”

Dowiesz się, że burza mózgów często przynosi więcej szkody niż pożytku; że każdy pracownik studia projektowego jest wymienny, nawet jeśli jest...