دو دونقطه در PHP به چه معناست؟ کولون: کجا، کی و چرا باید دونقطه قرار دهید چگونه می نویسید.

اگر کدهای برنامه های نوشته شده با PHP را آنالیز کرده باشید، احتمالاً با چنین موارد خاصی در کد مواجه شده اید. شخصیت ها:

-> (خط تیره و بزرگتر از علامت)

:: (کولون دوتایی)

برای مثال، ساختارهایی با این عبارات ممکن است به صورت زیر باشند:

سلام::hello_world(); q -> hello_world();

برای درک اینکه چرا این ساختارها مورد نیاز هستند، به ساده ترین مثال نگاه می کنیم. فرض کنید یک برنامه ساده «Hello world!» داریم.

بیایید یک فایل php ساده بسازیم و کد زیر را در آن بنویسیم:

کلاس Hello ( تابع hello_world () (پژواک "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 قرار دارد دسترسی پیدا می کنیم.

چنین ساختارهایی را می توان به ویژه در هنگام تجزیه و تحلیل کد سیستم های مدیریت وب سایت های مختلف یافت. به کد منبع سیستم هایی مانند جوملا، وردپرس و غیره نگاه کنید. حالا می دانید که همه اینها برای چیست.

بیشتر از آموزش های PHP من برای مبتدیان.

بنابراین، کولون یک علامت نگارشی است. برخلاف نقطه، تعجب و علامت سوال و بیضی، کارکرد جداکننده ندارد، یعنی جملات متن را از یکدیگر جدا نمی کند. دو نقطه فقط در یک جمله قرار می گیرد و بنابراین نشان می دهد که عبارت بعد از آن ادامه می یابد.

دو نقطه را می توان در جملات ساده و پیچیده یافت. در یک جمله ساده بخش هایی از عبارت را تقسیم و برجسته می کند؛ در یک جمله پیچیده نیز نقش معنایی دارد: روابط معنایی بین اجزای یک جمله پیچیده غیر اتحادی را نشان می دهد.

پس چگونه از کولون به درستی استفاده کنیم، بدون اینکه اشتباه کنیم و آن را با دیگران اشتباه نگیریم؟ بیایید به موارد اصلی نگاه کنیم.

دو نقطه در یک جمله ساده

قانون 1. در جمله ای با اعضای همگن، دو نقطه علامت بزنید

اگر یک کلمه تعمیم‌دهنده قبل از اعضای همگن آمده باشد، پس از آن یک دونقطه لازم است، برای مثال: برف دراز کشید هر کجا: روی پشت بام خانه ها، روی نرده ها، روی چمن ها، روی ماشین ها.

در این جمله کلمه هر کجا تعدادی از شرایط مشابه را تعمیم می دهد. کلمه تعمیم دهنده قبل از اعضای همگن قرار دارد و بنابراین بعد از آن یک دونقطه وجود دارد.

قانون 2. در جملات با کلمات واجد شرایط، دو نقطه علامت بزنید

هنگامی که از کلمات تعمیم دهنده در یک جمله استفاده می شود، می توان از کلمات روشن کننده استفاده کرد: مانند، برای مثال، مانند آن، یعنی، قبل از کاما و بعد از آن علامت دو نقطه قرار می گیرد. مثلا: برف دراز کشید هر کجا, برای مثال: روی پشت بام خانه ها، روی نرده ها، روی چمن ها، روی ماشین ها.

در این جمله همراه با کلمه تعمیم دهنده هر کجا ساخت و ساز روشن آن استفاده شد "برای مثال" , به دنبال آن یک سری اصطلاحات همگن وجود دارد، بنابراین یک دو نقطه به دنبال آن آمده است.

قانون 3. دو نقطه در ساخت و ساز با گفتار مستقیم

اگر گفتار مستقیم بعد از کلمات نویسنده باشد، در مقابل آن یک دو نقطه قرار داده می شود و خود گفتار مستقیم در داخل گیومه قرار می گیرد و اولین کلمه گفتار مستقیم با حرف بزرگ نوشته می شود: معلم گفت: سلام بچه ها!همچنین، اگر گفتار مستقیم کلمات نویسنده را در متن می شکند، در مقابل آن یک دو نقطه قرار می گیرد، به عنوان مثال: معلم با گفتن: "سلام بچه ها!" وارد کلاس شد.پس از سخنرانی مستقیم، باید یک کاما قرار دهید.

دو نقطه در یک جمله پیچیده

قانون 4. در موارد زیر می‌توان یک دونقطه بین بخش‌های یک جمله پیچیده غیر اتحادی (BSP) قرار داد.

  • بخش دوم BSP توضیح می دهدآنچه در اول گفته شد (بین قسمت های جمله می توانید درج کنید برای مثال")، مثلا: در میان مردم چنین نشانه‌ای وجود دارد: پرستوها هنگام بارندگی پایین پرواز می‌کنند. کاتیا بسیار شایسته می نویسد: او هرگز در کلمات اشتباه نمی کند و علائم نگارشی را به درستی قرار می دهد.در این جملات پیچیده غیر اتحادی، بخش دوم توضیحی درباره آنچه در جملات اول مورد بحث است، ارائه می‌کند. بین بخش‌هایی از جمله‌ها می‌توانید درج کنید برای مثال": در میان مردم چنین نشانه ای وجود دارد (برای مثال):پرستوها از روی آب به سمت باران پرواز می کنند.بنابراین، در جملات بالا یک دو نقطه وجود دارد.

  • بخش دوم BSP دلیل را فاش می کندآنچه در اول مورد بحث قرار گرفت (شما می توانید حروف ربط را بین بخش های جمله وارد کنید: از آنجایی که)، مثلا: کاتیا بسیار شایسته می نویسد: او زیاد می خواند، شعر را از قلب یاد می گیرد، حافظه خود را آموزش می دهد. به زودی باران خواهد آمد: پرستوها در ارتفاع پایین بر روی آب پرواز می کنند.در این BSP ها، قسمت دوم توجیه می کند، دلیل آنچه در اول گفته شد را نشان می دهد. شما می توانید حروف ربط بین قطعات را وارد کنید: از آنجایی که به زودی باران می بارد (زیرا):پرستوها در ارتفاع پایین بر روی آب پرواز می کنند.به همین دلیل در چنین جملاتی از دو نقطه استفاده می شود.

  • بخش دوم BSP تکمیل می کند، آشکار می کندآنچه در اول گفته شد (چنین جملاتی مترادف با جملات پیچیده با یک بند توضیحی هستند، بنابراین، می توان یک ربط بین بخش های BSP درج کرد. چی). مثلا: کاتیا می داند: خواندن کتاب نه تنها جالب است، بلکه برای مطالعه نیز بسیار مفید است. مردم می گویند: پرستوها وقتی باران می بارد از روی آب پایین پرواز می کنند.داده های BSP در بخش دوم معنای آنچه را که در قسمت اول مورد بحث قرار گرفته است را نشان می دهد. اگر اجزای چنین جمله ای با حرف ربط به هم متصل شوند چی، سپس یک جمله پیچیده با یک بند توضیحی دریافت می کنید: مردم می گویند (چی،):پرستوها از روی آب به سمت باران پرواز می کنند.جملاتی از این نوع قبل از دو نقطه قرار می گیرند.

  • در قسمت اول جمله افعال حذف شده است: و دید و شنید و احساس کرد، مثلا: سرم را بالا گرفتم: پرتوی از خورشید از میان ابرها عبور می کرد و با نوری روشن فضای خالی را روشن می کرد. برگشت: پژواک قدم های عجولانه از نزدیک شنیده شد.این جملات نیز مترادف با جملات فرعی پیچیده با جملات توضیحی هستند؛ در قسمت اول، افعالی مانند: و دیدم و شنیدمشما می توانید یک رابط بین قطعات وارد کنید چی. سرم را بالا گرفتم (و دیدم که): پرتوی از خورشید ابرها را درنوردید و با نور روشن فضای روشن را روشن کرد.


کولون در مقابل خط تیره

مشکل اصلی در استفاده از دو نقطه این است که گاهی اوقات به راحتی می توان این علامت نقطه گذاری را با علامت دیگری - یک خط تیره - اشتباه گرفت. اخیراً اغلب از این علائم به صورت موازی استفاده می شود، یعنی در موارد مشابه می توان هم خط تیره و هم کولون قرار داد. مثلا: و داوران تصمیم گرفتند: اگر باران ببارد، مسابقه لغو خواهد شد. من متوجه اولین سنگ شدم، به این نتیجه رسیدم که اینجا گنجی وجود دارد، بنابراین شروع کردم به گشتن در اطراف(تندریاکوف)، البته اوتغییر کرد(: –) خمیده، خاکستری، با چین و چروکدر گوشه های دهان؛ دارم میام داخل(: ) همه چیز ساکت است؛ این کلمات را جلوی او نگو.(: ) ممکن است توهین شود؛ همه فقط به یک سوال علاقه داشتند(: ) چگونه هر چه سریعتر از این وضعیت خلاص شویم؛ معنیش یک چیز بود(: ) نیاز به جدا شدن

چنین گزینه هایی برابر در نظر گرفته می شوند؛ می توانید بدون ترس از اشتباه از خط تیره و کولون استفاده کنید. با این حال، باید به یاد داشته باشیم که خط تیره علاوه بر کارکردهای نحوی، کارکردهای عاطفی و بیانی را نیز انجام می دهد، یعنی بیانگر عاطفی بودن گزاره است و بر بیان آن تأکید می کند. بنابراین، اگر جمله دارای چنین معانی نیست و خنثی است، باید با رعایت قوانینی که در مورد آن صحبت کردیم، از استفاده از خط تیره و قرار دادن دو نقطه پرهیز کنید.

احتمالاً متوجه شده اید که من چقدر از این دو شبه عنصر در درس هایم استفاده می کنم. چرا آنها را دوست دارم؟ زیرا استفاده از آنها بسیار راحت است که حتی نیازی به اضافه کردن عناصر 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 از آن پشتیبانی می‌کند، و این دلیل خوبی (و تنها) برای استفاده از سینتکس تک کولن است.

مهم!

لطفاً به یاد داشته باشید که همه این صحبت ها در مورد یک یا دو دونقطه فقط در مورد شبه عناصر است نه شبه کلاس ها.

چگونه می نویسید؟

در نظرات بنویسید که از کدام نحو و به چه دلایلی استفاده می کنید.

علاوه بر پاسخ‌هایی که در مورد استفاده پی‌اچ‌پی از دو دونقطه به‌عنوان «اپراتور تفکیک دامنه» ارائه شده است:

علاوه بر این، از کولون دوتایی استفاده می شود:

    برای تبدیل یک نام کلاس غیر واجد شرایط، واجد شرایط یا مستعار به شکل کاملاً واجد شرایط آن، و

    برای فراخوانی متد کلاس __callStatic.

برای تبدیل نام کلاس به فرم کاملا واجد شرایط آن با افزودن "::class"

دو دو نقطه و به دنبال آن کلمه کلیدی "class" بعد از نام کلاس، نام کاملا واجد شرایط آن کلاس را به عنوان یک رشته ارائه می کند. یعنی «ClassName::class» به نام کامل «ClassName» تبدیل می‌شود. به (الف) کتابچه راهنمای: کلاس‌ها و اشیاء: مبانی، (ب) کتابچه راهنمای: کلاس‌ها و اشیاء: ثابت‌های کلاس و (ج) راهنما: مرجع زبان: ثابت‌ها مراجعه کنید.

نحو "::class" در یک فضای نام برای به دست آوردن یک نام کلاس کاملاً واجد شرایط از فرم نامشخص یا واجد شرایط آن یا از نام مستعار نام آن مفید است.

به نظر می رسد نحو "::class" برای حل نام های رابط و همچنین نام کلاس ها کار می کند، اگرچه به نظر نمی رسد این موضوع توسط منابع لینک شده در بالا مستند شده باشد.

در داخل یک کلاس، نحو همچنین با "self::class" کار می کند همانطور که در "::class" RFC پیوند داده شده در بالا ذکر شد.

چند مثال:

fullName(), PHP_EOL; // خروجی ها: MyNamespace\TheirClass

برای تماس با "__callStatic"

از دو دونقطه می توان برای فراخوانی نام متد استاتیکی که کلاس اعلام نکرده است استفاده کرد. اگر متد کلاس را اعلام کرده باشد، "__callStatic" را فراخوانی می کند. سپس روش __callStatic می تواند به صورت "دینامیک" نحوه رسیدگی به تماس را انتخاب کند. در PHP به این "overloading" با استفاده از "روش جادویی" __callStatic گفته می شود.

handleOrder($arguments); ) "متاسفم، ما نمی توانیم به شما کمک کنیم" را برگردانید. lcfirst($item) . "." ) ) فضای نام OurCompany\Specialists; class Car ( عملکرد عمومی handleOrder($arguments) ( بازگشت "آیا می توانم با یک ماشین $arguments به شما کمک کنم؟"؛ ) ) class Truck ( عملکرد عمومی handleOrder($arguments) ( بازگشت "می توانم با یک کامیون $arguments به شما کمک کنم؟ "; )) از OurCompany\Orders\Intake استفاده کنید. echo Intake::orderCar("قرمز")، PHP_EOL; // خروجی ها: آیا می توانم در مورد ماشین قرمز به شما کمک کنم؟ echo Intake::orderTruck("پیکاپ")، PHP_EOL; // خروجی ها: ممکن است در مورد یک وانت به شما کمک کنم؟ echo Intake::orderShoes("جیر")، PHP_EOL; // خروجی ها: متأسفم، ما نمی توانیم در مورد کفش به شما کمک کنیم.

آخرین مطالب در بخش:

کار عملی با نقشه ستاره متحرک
کار عملی با نقشه ستاره متحرک

سوالات آزمون برای ارزیابی ویژگی های شخصی کارمندان دولت
سوالات آزمون برای ارزیابی ویژگی های شخصی کارمندان دولت

تست "تعیین خلق و خو" (G. Eysenck) دستورالعمل ها: متن: 1. آیا اغلب هوس تجربه های جدید، برای تکان دادن خود،...

مایکل جادا
مایکل جادا "کارنامه خود را بسوزانید"

شما خواهید آموخت که طوفان فکری اغلب بیشتر از اینکه مفید باشد ضرر دارد. که هر کارمند یک استودیوی طراحی قابل تعویض است، حتی اگر ...