جستجوگر پیشرفته سایت



کوتیشن یا دابل کوتیشن؛ کی و کجا استفاده کنیم؟!

محصول مرتبط با این پست : پکیچ 110 ساعت آموزش برنامه نویسی و طراحی سایت

فیلم های آموزش PHP به زبان فارسی

مجموعه فیلم های آموزشی طراحی وب سایت های پویا از دانشگاه هاوارد

 

 

 

 

 

آیا شما هم جز اون دسته از افرادی هستید که هنگام کدنویسی PHP، همواره از دابل کوتیشن برای مشخص کردن یک رشته کاراکتر استفاده می کنید؟!



به نظر می رسه اکثر مثالها و نمونه هایی که حتی در راهنمای PHP وجود داره تمایل زیادی به استفاده از دابل کوت رو نشون میده. اگرچه راه دومی هم وجود داره که به مراتب بهتر از قبلی هم هست و اون استفاده از کوتیشن یا (Single Quote) به جای Double Quoteهاست. برای مثال به جای:

 

 <?php
echo “Visit http://www.phpmystery.com”;
?>

میتوان از

<?php
echo ‘Visit http://www.phpmystery.com’;
?>


استفاده کرد. خوب حتما این تو ذهنتون شکل گرفته که «چه فرقی داره؟»
پاسخ اینه که در مثال بالا هیچ تفاوتی وجود نداره اما به مثال زیر توجه کنید:
میخواهیم یه تکه کد HTML
رو داخل یک متغیر ذخیره کنیم؛ اگر از دابل کوتیشن استفاده کنیم:


همونطور که می بینید اگر رشته کاراکتر، حاوی کاراکتر (”) باشه باید اون رو با کاراکتر بک اسلش () اسکیپ کنیم تا Parse Error پیش نیاد ولی در مثال دوم می بیینم که هر چه داخل (’) باشه، عینا و حرف به حرف نوشته میشه.
دلیل بعدی اینکه راه دوم پرفورمنس بالاتری داره! استفاده از کوتیشن همواره سریعتر از دابل کوتیشن هست و در برخی موارد این تفاوت چند صد درصد میشه!
با نگاهی به
Benchmark
زیر فکر کنم همه چیز روشن بشه.


نتیجه: توی رشته کاراکترهایی که در ” قرار میدید، از کاراکتر $ به تنهایی استفاده نکنید، مگر اینکه بخواهید مقدار یک متغیر را جانشین کنید و اگر هم خواستید این کار رو انجام بدید بهتره اون رو با یک بک اسلش اسکیپ کنید.
وقتی از کاراکترهای خاصی نظیر n یا r و t
که برای فرمت بندی رشته کاراکتر بکار میره، استفاده می کنید، اگر اونها رو داخل ‘ قرار بدید اثر خودشون رو از دست میدن و باید حتما داخل ” قرار بگیرند.

 

 

 

 <?php
echo ‘check out http://www.phpmystery.com’ . “nr” . ‘to discover unknowns about PHP’;
?> 
 

 با این تفاسیر میشه گفت:
۱»
اگر متغیری داخل رشته کاراکتر نیست که بخواهید مقدارش جانشین بشه از کوتیشن استفاده کنید.
۲» اگر متغیری داخل رشته کاراکتر باشه افزودن {} باعث سرعت عملکرد میشه.(*)

 

 <?php
$sql = “select * from `mytable` where `status` = ‘{$status}’ order by name”
?>
 

 ۳» بجای دستور Print از Echo استفاده کنید. Property اون آبجکت باشه)
برای مثال:

(*) دو جا هست که آکولادها به کار ما میان؛ اولا وقتی که بخواهیم یک سری کاراکتر درست چسبیده به نام متغیر رو نمایش بدیم و مورد بعدی وقتی عبارتی که میخواهیم درون رشته کاراکتر جای بدیم یک متغیر ساده نباشه(مثلا یک آرایه دوبعدی یا خروجی متد یک آبجکت یا

 

 <?php
$sport1 = ‘volley’;
$plan1 = “I will play $sport1ball in the summertime”;
$plan2 = “I will play {$sport1}ball in the summertime”;
?>
 

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

 

 <?php
// $plan1 = ‘I will play  in the summertime’;
// $plan2 = ‘I will play volleyball in the summertime’
?>
 double (”) vs. single (’) quotes
Is a there a difference in using double (”) and single (’) quotes for strings. Call 1′000x
+ 101 % 1: single (’) quotes. Just an empty string: $tmp[] = ”; Total time: 3[ms]
+ 100 % 2: double (”) quotes. Just an empty string: $tmp[] = “”; Total time: 3[ms]
+ 111 % 3: single (’) quotes. 20 bytes Text : $tmp[] = ‘aaaaaaaaaaaaaaaaaaaa’; Total time: 3[ms]
+ 118 % 4: double (”) quotes. 20 bytes Text : $tmp[] = “aaaaaaaaaaaaaaaaaaaa”; Total time: 3[ms]
+ 115 % 5: single (’) quotes. 20 bytes Text and 3x a $ : $tmp[] = ‘aa $ aaaa $ aaaa $ a’; Total time: 3[ms]
+ 461 % 6: double (”) quotes. 20 bytes Text and 3x a $ : $tmp[] = “aa $ aaaa $ aaaa $ a”; Total time: 13[ms]
+ 113 % 7: double (”) quotes. 20 bytes Text and 3x a $ : $tmp[] = “aa $ aaaa $ aaaa $ a”; Total time: 3[ms]

 <?php
echo “<table border=”1” cellspacing=”0” cellpadding=”0”>”;
?>

و اگر از کوتیشن استفاده کنیم

<?php
echo ‘<table border=”1″ cellspacing=”0″ cellpadding=”0″>’;
?>

تعداد بازديد : 2435
مطالب مرتبط
کد php ساختن لینکدونی با تعداد دفعات کلیک
اصول و مبانی کار با MySQL
نمایش چند صفحه ای اطلاعات در PHP
ماژول آپاچی mod_rewrite
آموزش نصب PHP بر روی سیستم عامل ویندوز
HTTP 2 انقلابی در سرعت مرورگرها
فیس بوک شماره تلفن می خواهد
از قالب های مخصوص خودتان در جمیل استفاده کنید
راه های افزایش امنیت در اینترنت
پنج اشتباه بزرگ که هرگز نباید در محیط مجازی مرتکب آنها شوید
بخش نظرات

کد امنیتی رفرش