Что означают два двоеточия в PHP? Синтаксис псевдо-элементов:before и:after Двоеточие в сложном предложении.
Вы, наверное, заметили, как часто в своих уроках я использую эти два псевдо-элемента. Почему они мне нравятся? Потому что их так удобно использовать, что даже не надо добавлять дополнительные HTML элементы. Однако данная статья посвящена не преимуществам псевдо-элементов.
Данная статья посвящена тому, чтобы раз и навсегда разъяснить все непонятки, касающиеся синтаксиса псевдо-элементов.
Псевдо-что?
Псевдо-элементы так называются, потому что они не являются настоящими HTML элементами. Например, в HTML нет тегов before и after, однако в 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"
Две двоеточия, за которыми следует ключевое слово "class", расположенное после имени класса, обеспечивают полное имя этого класса в виде строки. Т.е., "ClassName:: class" преобразуется в полное имя "ClassName". См. (A) Руководство: классы и объекты: основы , (B) Руководство: классы и объекты: константы классов и (C) Руководство: справочник по языку: константы
Синтаксис ":: class" полезен в пространстве имен для получения полностью определенного имени класса из его неквалифицированной или квалифицированной формы или из псевдонима его имени.
Синтаксис ":: class", по-видимому, работает для разрешения имен интерфейсов, а также имен классов, хотя это, похоже, не документировано источниками, указанными выше.
Внутри класса синтаксис также работает с "self:: class", как упомянуто в RFC ":: class", указанном выше.
Несколько примеров:
fullName(), PHP_EOL; // outputs: MyNamespace\TheirClass
Для вызова "__callStatic"
Две двоеточия могут использоваться для "вызова" статического имени метода, которое класс не объявил. Это вызывает метод класса "__callStatic", если он его объявил. Затем метод __callStatic может "динамически" выбирать, как обрабатывать вызов. В PHP это называется "перегрузкой" с помощью "магического метода" __callStatic .
handleOrder($arguments); } return "I"m sorry, we can"t help you with " . lcfirst($item) . "."; } } namespace OurCompany\Specialists; class Car { public function handleOrder($arguments) { return "May I help you with a $arguments car?"; } } class Truck { public function handleOrder($arguments) { return "May I help you with a $arguments truck?"; } } use OurCompany\Orders\Intake; echo Intake::orderCar("red"), PHP_EOL; // outputs: May I help you with a red car? echo Intake::orderTruck("pickup"), PHP_EOL; // outputs: May I help you with a pickup truck? echo Intake::orderShoes("suede"), PHP_EOL; // outputs: I"m sorry, we can"t help you with shoes.
Итак, двоеточие - это разделительный знак препинания. В отличие от точки, восклицательного и вопросительного знаков и многоточия он не имеет отделительной функции, то есть не отделяет предложения в тексте друг от друга. Двоеточие ставится только внутри предложения, и поэтому указывает на то, что после него высказывание будет продолжено.
Двоеточие можно встретить в простом и сложном предложении. В простом предложении оно разделяет и выделяет части высказывания, в сложном играет и смысловую роль: указывает на смысловые отношения между частями бессоюзного сложного предложения.
Так как же правильно употреблять двоеточие, не совершать ошибок и не путать его с другими? Давайте рассмотрим основные случаи.
Двоеточие в простом предложении
Правило 1. Двоеточие в предложении с однородными членами
Если обобщающее слово стоит перед однородными членами, то после него нужно двоеточие, например: Снег лежал повсюду : на крышах домов, на заборах, на газонах, на машинах.
В этом предложении слово повсюду обобщает ряд однородных обстоятельств. Обобщающее слово расположено перед однородными членами, и поэтому после него стоит двоеточие.
Правило 2. Двоеточие в предложениях с уточняющими словами
При обобщающих словах в предложении могут употребляться уточняющие слова: как например, например, как то, а именно, перед которыми ставится запятая, а после них – двоеточие. Например: Снег лежал повсюду , а именно : на крышах домов, на заборах, на газонах, на машинах.
В этом предложении вместе с обобщающим словом повсюду употреблена уточняющая его конструкция «а именно» , после которой следует ряд однородных членов, поэтому после нее стоит двоеточие.
Правило 3. Двоеточие в конструкциях с прямой речью
Если прямая речь следует после слов автора, то перед ней ставится двоеточие, причем сама прямая речи заключается в кавычки и первое слово прямой речи пишется с прописной буквы: Учитель сказал: «Здравствуйте, дети!». Также если прямая речь разрывает слова автора в тексте, то перед ней ставится двоеточие, например: Сказав: «Здравствуйте, дети!», учитель вошел в класс. После прямой речи при этом необходимо поставить запятую.
Двоеточие в сложном предложении
Правило 4. Между частями бессоюзного сложного предложения (БСП) может ставиться двоеточие в следующих случаях.
- Вторая часть БСП поясняет то, о чем говорилось в первой (между частями предложения можно вставить «а именно» ), например: В народе есть такая примета: ласточки низко летают к дождю; Катя пишет очень грамотно: никогда не делает ошибок в словах, правильно расставляет знаки препинания. В этих бессоюзных сложных предложениях во второй части дается пояснение того, о чем идет речь в первой. Между частями предложений можно вставить «а именно» : В народе есть такая примета (а именно): ласточки низко над водой летают к дождю. Поэтому в приведенных предложениях ставится двоеточие.
- Вторая часть БСП раскрывает причину того, о чем говорилось в первой (между частями предложения можно вставить союзы: так как, потому что ), например: Катя пишет очень грамотно: она много читает, учит стихи наизусть, тренирует память; Скоро пойдет дождь: ласточки летают низко над водой. В этих БСП вторая часть обосновывает, указывает на причину того, о чем говорилось в первой. Между частями можно вставить союзы: так как, потому что. Скоро пойдет дождь (потому что): ласточки летают низко над водой. Поэтому в таких предложениях ставится двоеточие.
- Вторая часть БСП дополняет, раскрывает то, о чем говорилось в первой (такие предложения синонимичны сложноподчиненным предложениям с придаточным изъяснительным, поэтому между частями БСП можно вставить союз что ). Например: Катя знает: читать книги не только интересно, но и очень полезно для учебы; В народе говорят: ласточки низко над водой к дождю летают. В данных БСП во второй части раскрывается смысл того, о чем идет речь в первой. Если части такого предложения соединить союзом что , то получится сложноподчиненное предложение с изъяснительным придаточным: В народе говорят (что,): ласточки низко над водой к дождю летают. В предложениях такого типа ставится двоеточие.
- В первой части предложения опущены глаголы: и увидел, и услышал, и почувствовал , например: Я поднял голову: луч солнца пробивался сквозь облака, озаряя поляну ярким светом; Он обернулся: эхо торопливых шагов раздавалось совсем близко. Данные предложения также являются синонимичными сложноподчиненным с придаточным изъяснительным, в первой части пропущены глаголы типа: и увидел, и услышал, между частями можно вставить союз что. Я поднял голову (и увидел, что) : луч солнца пробивался сквозь облака, озаряя поляну ярким светом.
Двоеточие vs тире
Главная сложность в употреблении двоеточия заключается в том, что иногда бывает легко перепутать этот знак препинания с другим - тире. В последнее время эти знаки часто употребляются параллельно, то есть в одних и тех же случаях может ставиться как тире, так и двоеточие. Например: И судьи решили: если будет дождь, соревнования отменят; Заметил первый камень, решил - здесь клад, стал ковыряться (Тендряков), Конечно, он изменился (: –) сгорбился, поседел, с морщинками в уголках рта; Вхожу (: – ) все тихо; Эти слова при нем не произносите (: – ) может обидеться; Всех интересовал только один вопрос (: – ) как поскорее выпутаться из создавшегося положения; Это означало одно (: – ) нужно расстаться.
Такие варианты считаются равноправными, можно не опасаясь ошибиться употреблять и тире, и двоеточие. Однако нужно помнить, что тире помимо синтаксических функций, выполняет и эмоционально-экспрессивные, то есть указывает на эмоциональность высказывания, подчеркивает его выразительность. Поэтому если предложение не несет таких смыслов, является нейтральным, нужно избегать употребления тире и ставить двоеточие, следуя рассмотренным нами правилам.