تفاوت دستور echo و print
در PHP دو روش اصلی برای چاپ وجود دارد: echo و print
تقریباً در هر مثالی از این بیاموز از echo (و print) استفاده شده است. بنابراین در این مطلب سعی شده است تا در این باره مقداری بیشتر توضیح داده شود.
دستور echo و print در PHP
تفاوت های echo و print:
- echo: یک یا بیشتر از یک آرگومان را می گیرد و مقداری را برنمی گرداند. برای اتصال دو رشته هم می توان از "." و هم از "," استفاده کرد.
- print: تنها یک آرگومان را می گیرد و همیشه مقدار 1 را برمی گرداند. برای اتصال دو رشته فقط می توان از "." استفاده کرد.
شباهت های echo و print:
- هر دو تابع نیستند.
- جزئی از ساختار زبانی هستند و می توان از آنها با یا بدون پرانتز استفاده نمود.
نکته: echo سرعت بیشتری نسبت به print دارد.
دستور echo در PHP
نمایش رشته ها
در مثال زیر، نحوه نمایش رشته های مختلف با استفاده از دستور echo نشان داده شده است: (همچنین توجه داشته باشید که رشته چاپ شده می تواند شامل تگ های HTML باشد)
مثال (تفاوت دستور echo و print)
echo "<h2>PHP is fun!</h2>";
echo "Hello world!<br>";
echo "I'm about to learn PHP!<br>";
echo "This", " string", " was", " made", " with multiple parameters.";
?>
خروجی کد بالا:
PHP is fun! Hello world!
I'm about to learn PHP!
This string was made with multiple parameters.
نمایش متغیرها
در مثال زیر، نحوه ی چاپ رشته ها و متغیر ها با دستور echo نشان داده شده است:
مثال (تفاوت دستور echo و print)
$txt1="Learn PHP";
$txt2="Beyamooz.com";
$cars=array("Volvo","BMW","Toyota");
echo $txt1;
echo "<br>";
echo "Study PHP at $txt2";
echo "My car is a {$cars[0]}";
?>
خروجی کد بالا:
Study PHP at Beyamooz.com
My car is a Volvo
توجه: اگر متغییری درون علامت " قرار بگیرد مقدار متغییر به جای آن قرار می گیرد. اما اگر درون علامت ' قرار بگیرد مقدار متغییر جایگزین نمی شود.
دستور print در PHP
نمایش رشته ها
در مثال زیر، نحوه نمایش رشته های مختلف با استفاده از دستور print نشان داده شده است: (همچنین توجه داشته باشید که رشته چاپ شده می تواند شامل تگ های HTML باشد)
مثال (تفاوت دستور echo و print)
print "<h2>PHP is fun!</h2>";
print "Hello world!<br>";
print "I'm about to learn PHP!";
?>
خروجی کد بالا:
PHP is fun! Hello world!
I'm about to learn PHP!
نمایش متغیرها
در مثال زیر، نحوه ی چاپ رشته ها و متغیر ها با دستور print نشان داده شده است:
مثال (تفاوت دستور echo و print)
$txt1="Learn PHP";
$txt2="Beyamooz.com";
$cars=array("Volvo","BMW","Toyota");
print $txt1;
print "<br>";
print "Study PHP at $txt2";
print "My car is a {$cars[0]}";
?>
خروجی کد بالا:
Study PHP at Beyamooz.com
My car is a Volvo
برای مشاهده فیلم ها و آموزش های پروژه محور برنامه نویسی PHP کلیک کنید.
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 41272
دیدگاهها
میشہ بگین فرق (۔)و (،) در دستور پرینت چیہ؟
دستور print فقط یک آرگومان می گیرد و برای اتصال دو رشته فقط از علامت نقطه (.) می توان استفاده نمود. بنابراین در دستور print نمی توان از علامت دش (-) استفاده کرد.
مطالب خیلی خوبی نوشتین اولین باره همچین سایتی میبینم رکورد دار نظرسنجی هستین.
ایا در php تابعی برای گرفتن ورودی از کاربر وجود ندارد؟
بله جلوتر که برید با دستورات GET_$ و POST_$ برای دریافت ورودی از کاربر آشنا خواهید شد.
دستورات GET_$ در PHP:
beyamooz.com/php/80-basic/54-%D9%85%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1-get_$-%D8%AF%D8%B1-php
منظوتون رو از اینکه دستور echo چند آرگومان می تونه بگیره ولی print فقط یه ارگومان میگیره نفهمیدم
میتونید یه مثال بزنید که دستور print قادر به انجامش نباشه؟
بعنوان مثال دستور print قادر به انجام کد زیر نیست:
print "ehsan", "ali";
ارگومان ها تو هر زبانی با کاما , جدا میشه و نقطه . نشنون دهنده جمع دو رشتست نه اینکه دوتا ارگومان باشه انگار دوتا رشته رو قبل اینکه به پرینت بدیم بگیم جمع کن بریز توی یه متغییر دیگه حالا این متغییر جدیده رو چاپ کن
ولی اینجا دلیل چاپ نشدن اینه که دستور print علامت ویرگول "," رو نمی پذیره.
سلام خسته نباشید.
اگه print فقط یه رشته میگیره چرا گفتین بین رشته ها از نقطه استفاده میشه؟
سلام، در مطلب آموزشی بالا، گفته شده که دستور Print تنها یک آرگومان می گیره. توجه داشته باشید که "آرگومان" و "رشته" با هم فرق داره...!
ببخشید یه سوال این که echo مقداری را بر نمیگردونه ولی print مقدار 1 برمیگردونه یعنی چی؟ جوابشو خیلی فوری و فوتی نیاز دارم ممنون
با سلام.
برخی از دستورات فقط کار موردنظر رو انجام میدن، ولی برخی دیگه علاوه بر انجام کار خاصی، یه مقداری رو پس میدن.
دستور echo برای چاپ رشته در خروجی به کار میره.
دستور print هم برای چاپ رشته در خروجی به کار میره، و بعد از انجام این کار مقدار true رو هم بر میگردونه.
چرا توی مثال آخر بعد از print "Study PHP at $txt2";
خط بعدی میاد پایین؟!
ما که از تگ بریک استفاده نکردیم..
در خط بعدی نمیاد. این به خاطر نمایش برای فهم بیشتر هست و الّا اگر کدها رو تست کنید. متون پشت سر هم هست، مگر اینکه از تگ بریک یا پاراگراف و یا ... برای جداسازی استفاده کنید.
تفاوت دستور Print و echo رو خوب متوجه شدم. ممنون
عالی بود.
یعنی چی که print فقط 1 آرگومان می گیرد ؟
دستور echo می تواند چند متغیر را همزمان با یکدیگر چاپ کند. اما دستور print تنها یک متغیر را در آن واحد میتواند چاپ کند و در خروجی نمایش دهد. منظور از 1 آرگومان این است که در آن واحد می تواند یک متغیر یا یک رشته و ... را چاپ کند.
اما من امتحان کردم شد
کد زیر رو ببینید
خروجی:
hello world / hello ehsan
hello ehsan
متأسفانه چون در کدتان از علامت > و < استفاده کرده اید، کدتان کامل ارسال نشده است ...!
لطفاً به مثال زیر توجه فرمایید:<?php
$a='beyamooz';
$b='.com';
echo $a,$b;
echo '<br />';
//print $a,$b;//در اين خط با خطا مواجه خواهيم شد
print $a.$b;//اين خط بدون خطا اجرا خواهد شد
?>خروجی:beyamooz.com
beyamooz.comدر مثال بالا، در خط 2 و 3 دو متغیر با نام های a& و b& تعریف شده و مقداردهی شده اند. توجه داشته باشید در خط 4 با استفاده از دستور echo دو متغییر را چاپ کرده ایم و در این دستور بین دو متغییر از علامت ویرگول (,) استفاده شده است.
اما در خط 6 سعی کرده ایم دو متغییر را با استفاده از دستور print چاپ کنیم که با خطا مواجه شده ایم. باز توجه کنید که بین دو متغییر از علامت ویرگول (,) استفاده شده است.
در خط 7 نیز با استفاده از عملگر نقطه (.) و دستور print دو متغییر مذکور را به هم متصل و سپس چاپ کرده ایم.
در خط 6 احتمالاً متوجه اشتباهی که مرتکب شده اید خواهید شد. در واقع در این خط ما 1 آرگومان داریم که از اتصال دو متغییر به وجود آمده است.
در خط 6 نیز با استفاده از عملگر نقطه (.) و دستور print دو متغییر مذکور را به هم متصل و سپس چاپ کرده ایم.
در خط 6 احتمالاً متوجه اشتباهی که مرتکب شده اید خواهید شد. در واقع در این خط ما 1 آرگومان داریم که از اتصال دو متغییر به وجود آمده است.
================================================
سلام، این دوتا خط 6 آخر رو به خط 7 اصلاح کنید. با تشکر از راهنماییهای خوبتان
آها، متوجه شدم
1 آرگومان داریم که از اتصال دو متغییر به وجود آمده است.
متشکرم
سلام من تو یه کتاب خوندم که print یه تابع هست و echo ساختار خود زبان Php ایا اشتباه نوشته بوده اون کتاب؟ در ضمن با یه مثال ثابت کرد حرفش رو...
سلام، هر دو دستور echo و print جزء ساختار زبان PHP هستند. شاید منظور شما printf بوده ...!
printf تابعی است که حداقل یک پارامتر رشته ای و یک پارامتر format style می گیرد و چیزی که برمیگرداند طول رشته چاپ شده است. //int printf($string, $s);
$s= "beyamooz";
$i= printf("Hello %s how are you?",$s);
echo $i;خروجی: Hello beyamooz how are you?
27