کوتيشن يا دابل کوتيشن؛ کي و کجا استفاده کنيم؟!
آيا شما هم جز آن دسته از افرادی هستيد که هنگام کدنویسی PHP، همواره از دابل کوتيشن برای مشخص کردن يک رشته کاراکتر استفاده می کنيد؟!
به نظر می رسه اکثر مثالها و نمونه هايی که حتی در راهنمای PHP وجود داره تمايل زيادی به استفاده از دابل کوت رو نشون میده. اگرچه راه دومی هم وجود داره که به مراتب بهتر از قبلی هم هست و اون استفاده از کوتيشن يا (Single Quote) به جای Double Quoteهاست. برای مثال به جای:
|
<?php |
ميتوان از:
|
<?php |
استفاده کرد. خوب حتما اين تو ذهنتون شکل گرفته که «چه فرقی داره؟»
پاسخ اينه که در مثال بالا هيچ تفاوتی وجود نداره اما به مثال زير توجه کنيد:
ميخواهيم يه تکه کد
|
<?php |
و اگر از کوتیشن استفاده کنیم.
|
<?php |
همونطور که می بينيد اگر رشته کاراکتر، حاوی کاراکتر (") باشه بايد اون رو با کاراکتر بک اسلش (\) اسکيپ کنيم تا
دليل بعدی اينکه راه دوم پرفورمنس بالاتری داره! استفاده از کوتيشن همواره سريعتر از دابل کوتيشن هست و در برخی موارد اين تفاوت چند صد درصد ميشه!
با نگاهی به Benchmark زیر فکر کنم همه چیز روشن بشه.
|
double (") vs. single (') quotes |
نتيجه: توی رشته کاراکترهایی که در " قرار میدید، از کاراکتر $ به تنهایی استفاده نکنید، مگر اینکه بخواهید مقدار یک متغیر را جانشین کنید و اگر هم خواستید این کار رو انجام بدید بهتره اون رو با یک بک اسلش اسکیپ کنید.
وقتی از کاراکترهای خاصی نظیر
|
<?php |
با اين تفاسير ميشه گفت:
۱» اگر متغيری داخل رشته کاراکتر نيست که بخواهيد مقدارش جانشين بشه از کوتيشن استفاده کنيد.
۲» اگر متغيری داخل رشته کاراکتر باشه افزودن {} باعث سرعت عملکرد ميشه.(*)
|
<?php |
۳» بجای دستور
(*) دو جا هست که آکولادها به کار ما ميان؛ اولا وقتی که بخواهيم يک سری کاراکتر درست چسبيده به نام متغير رو نمايش بديم و مورد بعدی وقتی عبارتی که ميخواهيم درون رشته کاراکتر جای بديم يک متغير ساده نباشه(مثلا یک آرایه دوبعدی یا خروجی متد یک آبجکت یا Property اون آبجکت باشه)
برای مثال:
|
<?php |
مشکل از اونجا ناشی ميشه که مفسر وقتی داخل یه رشته کاراکتر به $ برخورد کنه، تا رسيدن به فاصله خالی شروع به جمع آوری کاراکترها ميکنه و نام متغير رو تشخیص ميده و اگر قبلا مقدار گرفته بود، مقدارش رو جايگزين ميکنه وگرنه مقدار
|
<?php |

