همانطور که در درس قبلی دیدید دستور echo برای نمایش یک یا چند رشته در خروجی بکار گرفته میشه. البته echo تنها یکی از دستوراتیه که برای نمایش در خروجی استفاده میشه اما پرکاربرد ترین دستور همینه. ما در طول آموزش های PHP از این دستور زیاد استفاده میکنیم.
شکل کلی
نمایش رشته ها در خروجی
برای نمایش یک رشته در خروجی ما از echo استفاده میکنیم.ما میتونیم با دستور echo محتویات یه متغیر،رشته و یا هر دو رو نشون بدیم.
ما این کارو در مثال پایین انجام دادیم:
<?php $myString = "Hello!"; echo $myString; echo '<h5>I love using PHP!</h5>'; ?>
خروجی:
رشته ای که ما با دستور echo تولید میکنیم Plain text یعنی متن خالصه، اما وقتی این متن خالص به مرورگر ارسال میشه، چون بعضی ار عبارتها برای مرورگر معنی دار هستند اونها رو به شکلهای مختلف نشون میده.
مثلا کد ما در مرورگر به این صورت نمایش داده میشه:
Hello!
I love using PHP!
برای درک بهتر میتونید تو مرورگرتون View page source رو بزنید تا کد اصلی رو ببینید.
مراقب کوتیشن مارک ها باشید!
کوتیشن مارک ها (Quotation marks) دو نوع هستن تک کوت ( ‘ ) و دابل کوت ( ” ).
وقتی که میخواین با دستور echo کدهای HTML رو در سند چاپ کنید باید مراقب تگ هایی که شامل ( ” ) هستن باشید چون در html مقدار ویژگی ها باید با ( ” ) مشخص بشه.
همونطور که دیدید برای چاپ کردن رشته باید اون رو در دو دابل کوت (” … ” echo) یا دو تک کوت (‘ … ‘ echo) قرار بدیم که ابتدا و انتهای رشته رو مشخص میکنه، باید به این نکته توجه کنید که نباید در رشته کاراکتری که برای مشخص کردن ابتدا و انتهای کل رشته در نظر گرفته شده استفاده بشه چون در اینصورت ابتدا و انتهای رشته بهم میخوره.
مثل این کد:
<?php echo "Hello, My name is "Reza" "; # |------------------| |-| # Start end ?>
همونطور که تو کد بالا میبینید رشته reza خارج از محدوده قرار داره و اگر این کد رواجرا کنید با خطا مواجه میشید.
بهترین راه برای echo کردن انواع رشته ها
1-اگر میخواین یه رشته معمولی که بدون هیچ کوتیشن مارک یا متغیریه رو چاپ کنید بهتره اون رو در دو تک کوت قرار بدید.
مثال:
<?php echo 'hello!<br/>I am reza!'; ?>
2-اگر در رشته عبارات معنی دار یا متغیر دارید باید از دابل کوت استفاده کنید یا اونها رو در رشته های مختلف گذاشته و با عملگر ترکیب ( . ) به هم بچسبونید و یا با کاما ( , ) اونها رو جدا کنید تا خود echo در نهایت اونها رو به هم بچسبونه و نمایش بده.
مثال:
<?php $name1='Reza'; $name2='Ali'; echo "Hello $name1 and $name2" , ', ' , 'Welcome to <span style="color:red">Developers</span> home!'; ?>
خروجی تو مرورگر:
3- در هر دو مورد وقتی میخواین از همون کاراکتر که برای مشخص کردن ابتدا و انتهای رشته استفاده شده، در رشته هم استفاده کنید باید قبل ار اون کاراکتر، یک بک اسلش ( \ ) قرار بدید به این تکنیک اصطلاحا escape کردن گفته میشه.
مثال:
<?php $name1='Reza'; $name2='Ali'; echo "Hello $name1 and $name2, Welcome to <span style=\"color:red\">Developers</span> home!"; #-----------------------------------------------------^ #----------------------------------------------------------------^ ?>
مثالهای بیشتر:
<?php echo "<h5 class="specialH5">I love using PHP!</h5>"; ?>
این کد کار نمیکنه چون در واقع specialH5 بیرون از رشته ما قرار داره.
<?php echo "<h5 class=\"specialH5\">I love using PHP!</h5>"; ?>
این کد درسته چون ما قبل کوتیشن های داخلی علامت بک اسلش (\) گذاشتیم (escape کردیم).
<?php echo "<h5 class='specialH5'>I love using PHP!</h5>"; ?>
این کد هم درسته چون اطراف specialH5 اپوستروف گذاشتیم. البته میتونیم برعکسش رو هم بنویسیم یعنی برای مشخص کردن رشته اصلی از اپوستروف استفاده کنیم و در رشته های داخل از دابل کوت به این شکل:
<?php echo '<h5 class="specialH5">I love using PHP!</h5>'; ?>
استفاده از Heredoc:
با استفاده از heredoc میتونید با خیال راحت رشته ها و متغیرها رو نمایش بدید. heredoc باید با 3 علامت >>> شروع بشه و بعدش نامی دلخواه برای محدوده heredoc انتخاب کنید و بعد در پایان همون نام رو در یک لاین جدید بدون هیچ فاصله ای دوباره بذارید:
<? $site_addr="http://irDevs.com"; echo <<<SA_Dispaly <h5 class="specialH5">Please visit us at $site_addr</h5> SA_Dispaly; ?>
مثال:
<?php $my_string = "Hello Bob. My name is: "; echo "$my_string Bobettta <br />"; echo "Hi, I'm Bob. Who are you? $my_string <br />"; echo "Hi, I'm Bob. Who are you? $my_string Bobetta"; ?>
همین کد با Heredoc:
<? $my_string = "Hello Bob. My name is: "; echo<<<SA_Dispaly $my_string Bobettta <br /> Hi, I'm Bob. Who are you? $my_string <br /> Hi, I'm Bob. Who are you? $my_string Bobetta SA_Dispaly; ?>
سلام
سایتتون عالیه.میخوام طراحی سایت انجام بدم اما هیچی بلد نیستم
میخوام یه کتاب عالی که بتونم حرفه ای بشم بهم معرفی کنید.
ممنون از آموزش مفید شما.
خيلي ممنون اميدوارم ىر تمامي مراحل زندگی موفق وموید باشین…
مرسی امید جان.
عالیه
من وقتی کد php ذخیره میکنم عین همون کد رو نشون میده
سلام ممنون که نظر میدید. بخ بخش مقدمه رجوع کنید