دستور echo و کار با رشته ها در PHP

همانطور که در درس قبلی دیدید دستور echo برای نمایش یک یا چند رشته در خروجی بکار گرفته میشه. البته echo تنها یکی از دستوراتیه که برای نمایش در خروجی استفاده میشه اما پرکاربرد ترین دستور همینه. ما در طول آموزش های PHP از این دستور زیاد استفاده میکنیم.

 

شکل کلی

void echo ( string $arg1 [, string $… ] )
نکته: همیشه وقتی تو برنامه نویسی دیدید چیزی تو دو براکت ([ … ]) قرار گرفته معنی اختیاری بودن میده.

 

نمایش رشته ها در خروجی

برای نمایش یک رشته در خروجی ما از echo استفاده میکنیم.ما میتونیم با دستور echo محتویات یه متغیر،رشته و یا هر دو رو نشون بدیم.
ما این کارو در مثال پایین انجام دادیم:

<?php
$myString = "Hello!";
echo $myString;
echo '<h5>I love using PHP!</h5>';
?>

خروجی:

Hello!<h5>I love using PHP!</h5>

 

رشته ای که ما با دستور echo تولید میکنیم Plain text یعنی متن خالصه، اما وقتی این متن خالص به مرورگر ارسال میشه، چون بعضی ار عبارتها برای مرورگر معنی دار هستند اونها رو به شکلهای مختلف نشون میده.

مثلا کد ما در مرورگر به این صورت نمایش داده میشه:

Hello!

I love using PHP!

برای درک بهتر میتونید تو مرورگرتون View page source رو بزنید تا کد اصلی رو ببینید.

مراقب کوتیشن مارک ها باشید!

کوتیشن مارک ها (Quotation marks) دو نوع هستن تک کوت ( ‘ ) و دابل کوت ( ” ).

بسیار مهم: وقتی از دو تک کوت (‘ ‘) برای نمایش رشته استفاده میکنید تمام کلمه های معنی دار مثل n،\r،\t\ و متغیرها عینا نوشته میشن و عمل نمیکنن.

 

وقتی که میخواین با دستور echo  کدهای HTML رو در سند چاپ کنید باید مراقب تگ هایی که شامل ( ” ) هستن باشید چون در html  مقدار ویژگی ها باید با ( ” ) مشخص بشه.

همونطور که دیدید برای چاپ کردن رشته باید اون رو در دو دابل کوت (” … ” echo) یا دو تک کوت (‘ … ‘ echo) قرار بدیم که ابتدا و انتهای رشته رو مشخص میکنه، باید به این نکته توجه کنید که نباید در رشته کاراکتری که برای مشخص کردن ابتدا و انتهای کل رشته در نظر گرفته شده استفاده بشه چون در اینصورت ابتدا و انتهای رشته بهم میخوره.

مثل این کد:

<?php
 echo "Hello, My name is "Reza" ";
#     |------------------|    |-|
#   Start               end
?>

همونطور که تو کد بالا میبینید رشته reza خارج از محدوده قرار داره و اگر این کد رواجرا کنید با خطا مواجه میشید.

 

بهترین راه برای echo کردن انواع رشته ها

۱-اگر میخواین یه رشته معمولی که بدون هیچ کوتیشن مارک یا متغیریه رو چاپ کنید بهتره اون رو در دو تک کوت قرار بدید.
مثال:

<?php
 echo 'hello!<br/>I am reza!';
?>

۲-اگر در رشته عبارات معنی دار یا متغیر دارید باید از دابل کوت استفاده کنید یا اونها رو در رشته های مختلف گذاشته و با عملگر ترکیب ( . ) به هم بچسبونید و یا با کاما ( , ) اونها رو جدا کنید تا خود echo در نهایت اونها رو به هم بچسبونه و نمایش بده.

مثال:

<?php
 $name1='Reza';
 $name2='Ali';
 echo "Hello $name1 and $name2" , ', ' , 'Welcome to <span style="color:red">Developers</span> home!';
?>

خروجی تو مرورگر:

Hello Reza and Ali, Welcome to Developers home!

۳- در هر دو مورد وقتی میخواین از همون کاراکتر که برای مشخص کردن ابتدا و انتهای رشته استفاده شده، در رشته هم استفاده کنید باید قبل ار اون کاراکتر، یک بک اسلش ( \ ) قرار بدید به این تکنیک اصطلاحا 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 باید با ۳ علامت  >>> شروع بشه و بعدش نامی دلخواه برای محدوده heredoc انتخاب کنید و بعد در پایان همون نام رو در یک لاین جدید بدون هیچ فاصله ای دوباره بذارید:

<?
$site_addr="http://softafzar.net";
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;
?>

 

هاست

7 دیدگاه در “دستور echo و کار با رشته ها در PHP

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

به سوال زیر پاسخ بدهید *