İki cümlə iki nöqtə ilə ayrıldıqda. Pseudoelement sintaksisi:əvvəl və:sonradır. Mürəkkəb cümlədə iki nöqtə

Kolon belədir ayırıcı işarəsi durğu işarələri. Nöqtə, nida və sual işarələri və ellipsisdən fərqli olaraq ayırıcı funksiyaya malik deyil, yəni mətndəki cümlələri bir-birindən ayırmır. İki nöqtə yalnız cümlə daxilində qoyulur və buna görə də ifadənin ondan sonra davam etdiriləcəyini bildirir.

İki nöqtəyə sadə və mürəkkəb cümlələrdə rast gəlmək olar. IN sadə cümlə mülahizənin hissələrini ayırır və vurğulayır, mürəkkəb cümlədə də semantik rol oynayır: birləşməmiş mürəkkəb cümlənin hissələri arasında semantik əlaqələri göstərir.

Beləliklə, səhv etmədən və başqaları ilə qarışdırmadan kolondan necə düzgün istifadə etmək olar? Əsas hallara baxaq.

Sadə cümlədə iki nöqtə

Qayda 1. Bircins üzvləri olan cümlədə iki nöqtə

Ümumiləşdirici söz homojen üzvlərdən əvvəl gəlirsə, ondan sonra iki nöqtə qoyulmalıdır, məsələn: Qar yatır hər yerdə: evlərin damlarında, hasarlarda, qazonlarda, avtomobillərdə.

Bu cümlədə söz hər yerdə bir sıra oxşar halları ümumiləşdirir. Ümumiləşdirici söz bircins üzvlərdən əvvəl yerləşir və ona görə də ondan sonra iki nöqtə qoyulur.

Qayda 2. Nisbi sözlərlə cümlələrdə iki nöqtə

Bir cümlədə ümumiləşdirici sözlərdən istifadə edildikdə, aydınlaşdırıcı sözlərdən istifadə edilə bilər: kimi, məsələn, belə, yəni, əvvəl vergül, ardınca isə iki nöqtə qoyulur. Misal üçün: Qar yatır hər yerdə, yəni: evlərin damlarında, hasarlarda, qazonlarda, avtomobillərdə.

Bu cümlədə ümumiləşdirici sözlə birlikdə hər yerdə aydınlaşdıran konstruksiyadan istifadə edilmişdir "məhz" , bir sıra izlədi homojen üzvlər, ona görə də ondan sonra iki nöqtə var.

Qayda 3. Birbaşa nitqli konstruksiyalarda kolon

Müəllifin sözlərindən sonra birbaşa nitq gəlirsə, onun qarşısında iki nöqtə qoyulur və birbaşa nitqin özü dırnaq işarəsi ilə alınır və birbaşa nitqin ilk sözü ilə yazılır. böyük hərf: Müəllim dedi: "Salam, uşaqlar!" Həmçinin, birbaşa nitq mətndəki müəllifin sözlərini pozarsa, onun qarşısında iki nöqtə qoyulur, məsələn: Müəllim: “Salam, uşaqlar!” deyərək sinfə girdi. Birbaşa çıxışdan sonra vergül qoymaq lazımdır.

Mürəkkəb cümlədə iki nöqtə

Qayda 4. Birliksiz mürəkkəb cümlənin (BSP) hissələri arasında aşağıdakı hallarda iki nöqtə qoyula bilər.

  • BSP-nin ikinci hissəsi izah edir birincidə deyilənlər (cümlənin hissələri arasına əlavə edə bilərsiniz " yəni"), Misal üçün: Xalq arasında belə bir əlamət var: qaranquşlar yağış yağanda alçaq uçur; Katya çox savadlı yazır: sözlərdə heç vaxt səhv etmir və durğu işarələrini düzgün qoyur. Bu qeyri-birlikdə mürəkkəb cümlələr ikinci hissə birincidə müzakirə olunanları izah edir. Cümlələrin hissələri arasına " əlavə edə bilərsiniz yəni": Xalq arasında belə bir işarə var (yəni): qaranquşlar yağışa doğru suyun üzərindən alçaqdan uçurlar. Buna görə də yuxarıdakı cümlələrdə iki nöqtə var.

  • BSP-nin ikinci hissəsi səbəbini ortaya qoyur birincidə nə müzakirə edildi (cümlə hissələri arasında bağlayıcılar əlavə edə bilərsiniz: çünki, çünki), Misal üçün: Katya çox bacarıqlı yazır: çox oxuyur, şeiri əzbər öyrənir, yaddaşını məşq edir; Tezliklə yağış yağacaq: qaranquşlar suyun üstündən aşağı uçurlar. Bu BSP-lərdə ikinci hissə əsaslandırır, birincidə deyilənlərin səbəbini göstərir. Parçalar arasında bağlayıcılar əlavə edə bilərsiniz: çünki, çünki. Tezliklə yağış yağacaq (çünki): qaranquşlar suyun üzərindən alçaqdan uçurlar. Ona görə də belə cümlələrdə iki nöqtə işlənir.

  • BSP-nin ikinci hissəsi tamamlayır, aşkar edir birincidə deyilənlər (belə cümlələr izahlı müddəa ilə mürəkkəb cümlələrlə sinonimdir, ona görə də BSP hissələri arasına bağlayıcı əlavə etmək olar) ). Misal üçün: Katya bilir: kitab oxumaq təkcə maraqlı deyil, həm də öyrənmək üçün çox faydalıdır; İnsanlar deyirlər: yağış yağanda qaranquşlar suyun üstündən alçaq uçurlar.İkinci hissədəki BSP məlumatları birincidə müzakirə olunanların mənasını ortaya qoyur. Əgər belə cümlə üzvləri bağlayıcı ilə bağlanırsa , onda siz izahlı bəndi olan mürəkkəb bir cümlə alırsınız: İnsanlar deyir (Nə,): qaranquşlar yağışa doğru suyun üzərindən alçaqdan uçurlar. Bu tip cümlələrdən əvvəl iki nöqtə qoyulur.

  • Cümlənin birinci hissəsində fellər buraxılmışdır: gördü, eşitdi və hiss etdi, Misal üçün: Başımı qaldırdım: günəş şüası buludların arasından keçərək təmizliyi parlaq işıqla işıqlandırırdı; Döndü: tələsik addımların əks-sədası çox yaxından eşidildi. Bu cümlələr həm də birinci hissədəki izahlı cümlələrlə mürəkkəb tabeli cümlələrlə sinonimdir, fellər; və gördüm və eşitdim, Hissələr arasında bağlayıcı əlavə edə bilərsiniz Nə. başımı qaldırdım (və bunu gördüm): günəş şüası buludların arasından keçərək təmizliyi parlaq işıqla işıqlandırdı.


Kolon vs tire

İki nöqtədən istifadənin əsas çətinliyi ondadır ki, bəzən bu durğu işarəsini başqası ilə - tire ilə qarışdırmaq asandır. IN Son vaxtlar Bu işarələr çox vaxt paralel olaraq istifadə olunur, yəni eyni hallarda həm tire, həm də iki nöqtə qoyula bilər. Misal üçün: Və hakimlər qərar verdilər: yağış yağsa, müsabiqə ləğv ediləcək; İlk daşı gördüm, qərara gəldim ki, burada bir xəzinə var, ona görə də ətrafı süzməyə başladım(Tendryakov), Əlbəttə odəyişdi(: –) əyilmiş, boz, qırışlıağızın künclərində; Mən gəlirəm(: ) hər şey sakitdir; Bu sözləri onun qarşısında deməyin.(: ) incidilə bilər; Hamını yalnız bir sual maraqlandırırdı(: ) bu vəziyyətdən mümkün qədər tez necə çıxmaq olar; Bu bir şey demək idi(: ) parçalamaq lazımdır.

Bu cür variantlar bərabər hesab olunur, səhv etməkdən qorxmadan həm tire, həm də iki nöqtədən istifadə edə bilərsiniz. Bununla belə, yadda saxlamalıyıq ki, tire sintaktik funksiyalarla yanaşı, emosional və ifadəli funksiyaları da yerinə yetirir, yəni ifadənin emosionallığını göstərir və ifadəliliyini vurğulayır. Odur ki, əgər cümlə belə mənalar daşımırsa və neytraldırsa, müzakirə etdiyimiz qaydalara əməl edərək tire işarəsindən çəkinməli və iki nöqtə qoymalısınız.

Yəqin ki, dərslərimdə bu iki psevdo elementdən nə qədər tez-tez istifadə etdiyimi görmüsünüz. Onları niyə bəyənirəm? Çünki onlardan istifadə etmək o qədər rahatdır ki, əlavə HTML elementləri əlavə etməyə belə ehtiyac yoxdur. Ancaq bu məqalə psevdo elementlərin faydaları haqqında deyil.

Bu məqalə psevdo elementlərin sintaksisi ilə bağlı bütün qarışıqlıqları birdəfəlik aydınlaşdırmağa həsr edilmişdir.

Pseudo-nə?

Pseudo-elementlər belə adlanır, çünki onlar real HTML elementləri deyillər. Məsələn, HTML-də əvvəl və sonra teqlər yoxdur, lakin CSS-də siz :before və :after elementlərinə stil verə bilərsiniz.

Bir və ya iki nöqtə?

:əvvəl və ::əvvəl və ya :sonra və ::sonra arasında heç bir fərq yoxdur. İki nöqtəli nöqtə sintaksisi CSS3-ə xasdır.

http://www.w3.org/TR/css3-selectors/#pseudo-elements saytında bu paraqraf var:

Bu simvol (::) psevdosinfləri psevdoelementlərdən ayırmaq üçün təqdim edilmişdir. Artıq uyğunluq üçün mövcud cədvəllər CSS 1 və 2-də psevdo elementləri tək iki nöqtə ilə tərtib etmək də mümkündür (xüsusilə :birinci sətir, :birinci hərf, :əvvəl və :sonra).

Gəlin ümumiləşdirək

IE 7 və daha əvvəlki versiyalar sadalanan psevdo elementləri dəstəkləmir. Lakin IE 8 bunu dəstəkləyir və bu, tək iki nöqtəli sintaksisdən istifadə etmək üçün yaxşı (və yeganə) səbəbdir.

Vacibdir!

Xahiş edirik unutmayın ki, bir və ya iki nöqtə haqqında bütün bu söhbətlər psevdo-sinflər deyil, yalnız psevdo elementlər haqqındadır.

Necə yazırsan?

Hansı sintaksisdən və hansı səbəblərdən istifadə etdiyinizi şərhlərdə yazın.

PHP-nin "əhatə dairəsinin həlli operatoru" kimi iki iki nöqtədən istifadə etməsi ilə bağlı cavablara əlavə olaraq:

Bundan əlavə, ikiqat kolon istifadə olunur:

    Qeyri-ixtisaslı, ixtisaslaşdırılmış və ya ləqəbli sinif adını tam uyğun formaya çevirmək və

    Sinif metoduna zəng etmək üçün __callStatic.

"::class" əlavə edərək sinif adını tam uyğun formaya çevirmək üçün

Sinif adından sonra "sinif" açar sözünün ardınca iki nöqtə nöqtəsi həmin sinfin tam uyğunlaşdırılmış adını sətir kimi təqdim edir. Yəni "ClassName::class" tam adına "ClassName" çevrilir. Bax (A) Təlimat: Siniflər və Obyektlər: Əsaslar, (B) Təlimat: Siniflər və Obyektlər: Sinif sabitləri və (C) Təlimat: Dilə istinad: Sabitlər

"::class" sintaksisi qeyri və ya təyin olunmuş formadan və ya adının ləqəbindən tam uyğun sinif adını əldə etmək üçün ad məkanında faydalıdır.

"::class" sintaksisi interfeys adlarını, eləcə də sinif adlarını həll etmək üçün işləyir, baxmayaraq ki, bu yuxarıda əlaqələndirilmiş mənbələr tərəfindən sənədləşdirilməmişdir.

Sintaksis yuxarıda əlaqələndirilmiş "::class" RFC-də qeyd edildiyi kimi, sinif daxilində "self::class" ilə də işləyir.

Bir neçə nümunə:

tamAd(), PHP_EOL; // çıxışlar: MyNamespace\TheirClass

"__callStatic"ə zəng etmək üçün

Sinfin elan etmədiyi statik metod adını "zəng etmək" üçün iki iki nöqtə istifadə edilə bilər. Bu sinif metodunu "__callStatic" elan edirsə çağırır. __callStatic metodu daha sonra "dinamik olaraq" zəngi necə idarə edəcəyini seçə bilər. PHP-də buna "sehrli metod" __callStatic istifadə edərək "aşırı yükləmə" deyilir.

handOrder($arqumentlər); ) "Bağışlayın, sizə kömək edə bilmərik" cavabını qaytarın. lcfirst($element) . "."; ) ) ad sahəsi BizimŞirkətimiz\Mütəxəssislər; class Car ( public function handleOrder($arguments) ( qaytar "Mən sizə $arquments avtomobili ilə kömək edə bilərəmmi?"; ) ) class Truck ( ictimai funksiya handleOrder($arquments) ( qaytar "Mən sizə $arguments yük maşını ilə kömək edə bilərəmmi? "; ) ) BizimŞirkətimiz\Sifarişlər\Qəbul etmə; echo Intake::orderCar("qırmızı"), PHP_EOL; // çıxışlar: Mən sizə qırmızı maşınla kömək edə bilərəmmi? echo Intake::orderTruck("götürmə"), PHP_EOL; // çıxışlar: Mən sizə pikapla kömək edə bilərəmmi? echo Intake::orderShoes("zamşa"), PHP_EOL; // çıxışlar: Bağışlayın, biz sizə ayaqqabı ilə bağlı kömək edə bilmərik.

Əgər siz PHP-də yazılmış hər hansı proqramın kodlarını təhlil etmisinizsə, o zaman kodda çox güman ki, belə xüsusi şeylərlə qarşılaşmısınız. personajlar:

-> (tire və işarədən böyük)

:: (İki nöqtə)

Məsələn, bu ifadələri olan konstruksiyalar belə görünə bilər:

Salam::hello_world(); q -> salam_dünya();

Bu strukturların nə üçün lazım olduğunu başa düşmək üçün ən sadə nümunəyə baxaq. Tutaq ki, bizdə sadə bir “Salam dünya!” proqramı var.

Sadə bir php faylı yaradaq və ona aşağıdakı kodu yazaq:

Sinif Salam (hello_world funksiyası () ( "Salam dünya" əks-sədası; ) )

İndi hello_world() funksiyasını necə yerinə yetirə biləcəyinizi düşünün.

Əgər hello_world() funksiyası Hello sinfində olmasaydı, biz onu çox sadə adlandırardıq:

salam_dünya();

Nəticədə ekranda “Salam dünya” sözləri görünəcək. Ancaq çox güman ki, problemi bu şəkildə həll etməyə çalışsanız, ekranınızda bir səhv aldınız:

Ölümcül xəta: …/test.php on line…-da müəyyən edilməmiş hello_world() funksiyasına zəng edin…

Hər şey düzgündür, çünki funksiya sinifdədir, onda siz kompüterə onun Hello sinfində axtarılması lazım olduğunu söyləməlisiniz. Bunu etməsəniz, heç bir şey işləməyəcək.

Bu cür məlumatı kompüterə necə ötürmək olar?

Burada bir neçə variant var. Gəlin hər birinə ayrıca baxaq.

Seçim 1. Sinif nümunəsini yaratmaqla.

$q = yeni Salam;

Bu sətirlə biz Hello sinfinin sözdə nümunəsini yaradırıq. Bu əməliyyatdan sonra biz bu halda $q dəyişənində saxlanılan bu instansiya vasitəsilə bizə lazım olan funksiyaya sərbəst daxil ola bilərik.

$q -> salam_dünya();

“->” konstruksiyası sinif nümunəsi ilə funksiya arasında əlaqə olur.

İndi hər şey işləyir. Yaşasın! Ekranda "Salam Dünya" görünməlidir.

Seçim 2. İki nöqtəli konstruksiyadan istifadə::

Bu seçim daha sadədir. Burada heç bir nümunə yaratmağa belə ehtiyac yoxdur. Sadəcə yazırıq.

Salam::hello_world();

Funksiyanın uğurla icra edilib-edilməyəcəyini yoxlaya bilərsiniz.

Ümid edirəm ki, bu qeydi oxuduqdan sonra siz indi başa düşürsünüz ki, “->” və “::” yaradılmış sinifdə istədiyiniz funksiyaya daxil olmaq üçün istifadə olunur.

Eyni konstruksiyalardan istifadə edərək biz siniflərdə yerləşən dəyişənlərə daxil ola bilərik. Yeganə fərq ondadır ki, sonunda mötərizə qoymağa ehtiyac yoxdur. Misal üçün:

Salam::world;

Bu konstruksiya ilə biz Hello sinfində yerləşən dünya dəyişəninə daxil oluruq.

Bu cür konstruksiyalar, xüsusən müxtəlif veb-sayt idarəetmə sistemlərinin kodunu təhlil edərkən tez-tez tapıla bilər. Joomla, WordPress və s. kimi sistemlərin mənbə koduna baxın. İndi bütün bunların nə üçün olduğunu bilirsiniz.

Yeni başlayanlar üçün daha çox PHP dərslərim.