Какво означават две двоеточия в PHP? Двоеточие: къде, кога и защо трябва да поставите двоеточие Как пишете.

Ако сте анализирали кодовете на програми, написани на PHP, вероятно сте срещали такива специални неща в кода. герои:

-> (тире и знак за по-голямо)

:: (Двойно двоеточие)

Например конструкции с тези изрази може да изглеждат така:

Здравейте::hello_world(); q -> hello_world();

За да разберем защо са необходими тези структури, нека разгледаме най-простия пример. Да кажем, че имаме проста програма "Hello world!".

Нека създадем прост php файл и в него да напишем следния код:

Клас Hello ( функция hello_world () ( echo "Hello world"; ) )

Сега помислете как можете да изпълните функцията hello_world().

Ако функцията hello_world() не беше в класа Hello, тогава щяхме да я извикаме много просто:

Здравей свят();

В резултат на това на екрана ще се появи думата „Hello world“. Но най-вероятно, ако сте се опитали да разрешите проблема по този начин, сте получили грешка на екрана си:

Фатална грешка: Извикване на недефинирана функция hello_world() в …/test.php онлайн…

Всичко е точно, т.к функция е в клас, тогава трябва да кажете на компютъра, че трябва да се търси в класа Hello. Ако не направите това, тогава нищо няма да работи.

Как може такава информация да бъде предадена на компютър?

Тук има няколко варианта. Нека разгледаме всеки един поотделно.

Опция 1. Чрез създаване на екземпляр на клас.

$q = ново здравей;

С този ред създаваме така наречената инстанция на класа Hello. След тази операция можем свободно да получим достъп до функцията, от която се нуждаем, чрез този екземпляр, който в този случай се съхранява в променливата $q.

$q -> hello_world();

Конструкцията “->” става връзката между екземпляра на класа и функцията.

Сега всичко работи. Ура! Трябва да видите "Hello World" да се появява на екрана.

Вариант 2. Използване на конструкцията с двойно двоеточие::

Тази опция е дори много по-проста. Дори не е необходимо да създавате екземпляри тук. Просто си пишем.

Здравейте::hello_world();

Можете да проверите дали функцията ще бъде изпълнена успешно.

Надявам се, че след като прочетете тази бележка, вече разбирате, че “->” и “::” се използват за достъп до желаната функция в създадения клас.

Използвайки същите конструкции, можем да имаме достъп до променливи, които се намират в класове. Единствената разлика е, че не е необходимо да поставяте скоби в края. Например:

Здравей свят;

С тази конструкция имаме достъп до променливата world, която се намира в класа Hello.

Такива конструкции могат да бъдат намерени особено често при анализиране на кода на различни системи за управление на уебсайтове. Вижте изходния код на системи като Joomla, WordPress и др. Сега знаете за какво е всичко това.

Още от моите уроци по PHP за начинаещи.

И така, двоеточието е препинателен знак. За разлика от точка, удивителни и въпросителни знаци и многоточие, той няма разделителна функция, тоест не разделя изреченията в текста едно от друго. Двоеточие се поставя само в изречението и следователно показва, че изразът ще бъде продължен след него.

Двоеточие може да се намери в прости и сложни изречения. В простото изречение той разделя и подчертава части от изявлението; в сложното изречение играе и семантична роля: показва семантичните отношения между частите на несъюзното сложно изречение.

И така, как да използвате правилно двоеточие, без да правите грешки и да не го бъркате с други? Нека да разгледаме основните случаи.

Двоеточие в просто изречение

Правило 1. Двоеточие в изречение с еднородни членове

Ако обобщаваща дума стои пред еднородни членове, тогава след нея е необходимо двоеточие, например: Лежеше сняг навсякъде: по покривите на къщи, по огради, по тревни площи, по автомобили.

В това изречение думата навсякъде обобщава редица подобни обстоятелства. Обобщаващата дума се намира пред еднородни членове и затова след нея се поставя двоеточие.

Правило 2. Двоеточие в изречения с уточняващи думи

Когато в изречение се използват обобщаващи думи, могат да се използват поясняващи думи: като, например, така, а именно, предшествано от запетая и последвано от двоеточие. Например: Лежеше сняг навсякъде, именно: по покривите на къщите, по оградите, по тревните площи, по колите.

В това изречение заедно с обобщаващата дума навсякъде конструкция, изясняваща, че е използвана "а именно" , последвано от поредица от хомогенни термини, така че е последвано от двоеточие.

Правило 3. Двоеточие в конструкции с пряка реч

Ако след думите на автора следва директна реч, тогава пред нея се поставя двоеточие, а самата директна реч се огражда в кавички и първата дума на пряката реч се пише с главна буква: Учителят каза: "Здравейте, деца!"Освен това, ако директната реч прекъсва думите на автора в текста, тогава пред нея се поставя двоеточие, например: С думите: „Здравейте, деца!“, учителката влезе в класната стая.След пряка реч трябва да поставите запетая.

Двоеточие в сложно изречение

Правило 4. Между частите на несъюзното сложно изречение (БСП) може да се постави двоеточие в следните случаи.

  • Втора част на БСП обясняваказаното в първото (между частите на изречението можете да вмъкнете „ а именно"), Например: Сред хората има такъв знак: лястовичките летят ниско, когато вали; Катя пише много компетентно: никога не прави грешки в думите и правилно поставя препинателните знаци.В тези несъюзни сложни изречения втората част дава обяснение на това, което се обсъжда в първата. Между частите на изреченията можете да вмъкнете „ а именно": Има такъв знак сред хората (а именно):лястовици летят ниско над водата към дъжда.Следователно в горните изречения има двоеточие.

  • Втора част на БСП разкрива причинатакакво беше обсъдено в първото (можете да вмъкнете съюзи между частите на изречението: тъй като, защото), Например: Катя пише много грамотно: чете много, учи поезия наизуст, тренира паметта си; Скоро ще вали: лястовиците летят ниско над водата.В тези БСП втората част обосновава и посочва причината за казаното в първата. Можете да вмъкнете връзки между части: тъй като, защото. Скоро ще завали (защото):лястовичките летят ниско над водата.Ето защо в такива изречения се използва двоеточие.

  • Втора част на БСП допълва, разкриваказаното в първото (такива изречения са синоними на сложни изречения с пояснение, следователно между частите на БСП може да се вмъкне съюз Какво). Например: Катя знае: четенето на книги е не само интересно, но и много полезно за учене; Хората казват: лястовичките летят ниско над водата, когато вали.Данните на БСП във втората част разкриват смисъла на изложеното в първата. Ако частите на такова изречение са свързани със съюза Какво, тогава получавате сложно изречение с обяснителна клауза: Хората казват (Какво,):лястовици летят ниско над водата към дъжда.Изреченията от този тип се предхождат от двоеточие.

  • В първата част на изречението глаголите са пропуснати: и видях, и чух, и усетих, Например: Вдигнах глава: слънчев лъч пробиваше облаците, осветявайки поляната с ярка светлина; Той се обърна: ехото от бързи стъпки се чу съвсем близо.Тези изречения също са синоними на сложни подчинени изречения с обяснителни изречения; в първата част глаголи като: и аз видях и чух,Можете да вмъкнете връзка между части Какво. Вдигнах глава (и видя това): слънчев лъч проби през облаците, осветявайки поляната с ярка светлина.


Двоеточие срещу тире

Основната трудност при използването на двоеточие е, че понякога е лесно да объркате този препинателен знак с друг - тире. Напоследък тези знаци често се използват паралелно, тоест в едни и същи случаи могат да се използват както тире, така и двоеточие. Например: И съдиите решиха: ако вали, състезанието ще бъде отменено; Забелязах първия камък, реших, че тук има съкровище и започнах да ровя(Тендряков), Разбира се тойпроменен(: –) прегърбен, сив, с бръчкив ъглите на устата; влизам(: ) всичко е тихо; Не казвайте тези думи пред него.(: ) може да се обиди; Всички се интересуваха само от един въпрос(: ) как да излезете от тази ситуация възможно най-бързо; Това означаваше едно нещо(: ) трябва да се разделим.

Такива опции се считат за равни; можете да използвате както тире, така и двоеточие, без да се страхувате да направите грешка. Трябва обаче да помним, че тирето, в допълнение към синтактичните функции, изпълнява и емоционални и експресивни, тоест показва емоционалността на изявлението и подчертава неговата изразителност. Следователно, ако изречението не носи такива значения и е неутрално, трябва да избягвате да използвате тире и да поставите двоеточие, като следвате правилата, които обсъдихме.

Вероятно сте забелязали колко често използвам тези два псевдоелемента в уроците си. Защо ги харесвам? Тъй като те са толкова удобни за използване, че дори не е необходимо да добавяте допълнителни HTML елементи. Тази статия обаче не е за ползите от псевдоелементите.

Тази статия е посветена на това веднъж завинаги да изясни цялото объркване относно синтаксиса на псевдоелементите.

Псевдо-какво?

Псевдоелементите се наричат ​​така, защото не са истински HTML елементи. Например HTML няма тагове преди и след, но в CSS можете да стилизирате елементите :before и :after.

Едно или две двоеточия?

Няма разлика между :before и ::before или между :after и ::after. Синтаксисът с двойно двоеточие е специфичен за CSS3.

На http://www.w3.org/TR/css3-selectors/#pseudo-elements има този параграф:

Този символ (::) е въведен, за да се разграничат псевдо-класовете от псевдо-елементите. За съвместимост със съществуващите таблици със стилове, псевдоелементите в CSS 1 и 2 могат също да бъдат посочени с едно двоеточие (по-специално :first-line, :first-letter, :before и :after).

Нека да обобщим

IE 7 и по-ранни версии не поддържат изброените псевдоелементи. Но IE 8 го поддържа и това е добра (и единствена) причина да използвате синтаксиса с едно двоеточие.

важно!

Моля, не забравяйте, че всички тези разговори за едно или две двоеточия са само за псевдо-елементи, а не за псевдо-класове.

Как пишеш?

Напишете в коментарите кой синтаксис използвате и по какви причини.

В допълнение към отговорите относно използването на две двоеточия в PHP като „оператор за разрешаване на обхват“:

Освен това се използва двойно двоеточие:

    За да конвертирате неквалифицирано, квалифицирано или псевдоним име на клас в неговата напълно квалифицирана форма и

    За да извикате метода на класа __callStatic.

За да преобразувате име на клас в неговата напълно квалифицирана форма, като добавите "::class"

Две двоеточия, последвани от ключовата дума "клас" след името на класа, предоставят пълното име на този клас като низ. Тоест, "ClassName::class" се преобразува в пълното име "ClassName". Вижте (A) Ръководство: Класове и обекти: Основи, (B) Ръководство: Класове и обекти: Константи на класове и (C) Ръководство: Езикова справка: Константи

Синтаксисът "::class" е полезен в пространство от имена за получаване на напълно квалифицирано име на клас от неговата неквалифицирана или квалифицирана форма или от псевдоним на неговото име.

Синтаксисът "::class" изглежда работи за разрешаване на имена на интерфейси, както и имена на класове, въпреки че това не изглежда да е документирано от източниците, свързани по-горе.

В рамките на клас синтаксисът също работи със "self::class", както е споменато в "::class" RFC, свързан по-горе.

Няколко примера:

пълно име(), PHP_EOL; // извежда: MyNamespace\TheirClass

За да извикате "__callStatic"

Две двоеточия могат да се използват за "извикване" на име на статичен метод, което класът не е декларирал. Това извиква метода на класа "__callStatic", ако е декларирал такъв. След това методът __callStatic може "динамично" да избере как да обработи повикването. В PHP това се нарича "претоварване" с помощта на "магическия метод" __callStatic.

handleOrder($аргументи); ) върне "Съжалявам, не можем да ви помогнем с " . lcfirst($item) . "."; ) ) пространство от имена Нашата компания\Специалисти; class Car ( публична функция handleOrder($arguments) ( return "Мога ли да ви помогна с $arguments car?"; ) ) class Truck ( public function handleOrder($arguments) ( return "Мога ли да ви помогна с $arguments камион?) "; ) ) използвайте OurCompany\Orders\Intake; echo Intake::orderCar("red"), PHP_EOL; // изходи: Мога ли да ви помогна с червена кола? echo Intake::orderTruck("pickup"), PHP_EOL; // изходи: Мога ли да ви помогна с пикап? echo Intake::orderShoes("suede"), PHP_EOL; // изходи: Съжалявам, не можем да ви помогнем с обувки.

Последни материали в раздела:

Закон на Коши за разпределение на случайни променливи
Закон на Коши за разпределение на случайни променливи

Изглежда, че разпределението на Коши изглежда много привлекателно за описание и моделиране на случайни променливи. В действителност обаче това не е...

Принцип на работа на алтернатора
Принцип на работа на алтернатора

Тема 3. Електрически вибрации. Променлив електрически ток. Основни въпроси на темата: 3. 1. 1. Свободни незатихващи електрически трептения 3. 1....

Поставяне на цели и планиране на дейности стъпка по стъпка Схема за определяне на цели
Поставяне на цели и планиране на дейности стъпка по стъпка Схема за определяне на цели

Доскоро едно от най-често цитираните правила на живота беше твърдението на Н. Островски: „Животът... трябва да се живее така, че...