سوال در مورد echo

پرسیده شده
فعالیت 1130 روز پیش
دیده شده 880 بار
0

سلام. در ابتدای ویدیو که دستور echo،
x++ رو چاپ کرد، چرا مقدار x عوض شد؟ آیا echo به جز چاپ، عملیات assign هم انجام میده؟

فایل پیوست

امیرحسین شکری
امیرحسین شکری

19 خرداد 99

4
حذف شده

سلام جناب شکری

جواب ساده اش اینه که echo چاپ رو انجام میده و ++ مقدار x رو افزایش میده. افزایش و تغیر مقدار x توسط عملگر ++ انجام میشه نه echo 

فایل پیوست

لقمان آوند

توسط

لقمان آوند

20 خرداد 99

حذف شده
سپاسگزارم استاد عزیز. بنده فکر میکردم فرمایش شما در صورتی درسته که دستورات increment جلوی echo نباشن و در یک خط جدا نوشته شده باشن (به عبارتی هر چیزی جلوی echo جزو پرینته و یک دستور مجزا نیست). آیا این حالت فقط در php هست؟ چون بنظرم تا حالا مورد مشابه ندیدم.
امیرحسین شکری

24 خرداد 99

حذف شده
دستور echo فقط یه دستور چاپ هست ولی میشه وقتی چاپ انجام میدی همون لحظه یکسری عملیات هم انجام بدی مثلا : echo $a + $b دستور اکو برای چاپ هست ولی جلوش عملیات جمع اومده ربطی به اکو نداره اکو فقط برای چاپ هست . عملیات جمع در پردازش جدا پردازش میشه و در اخر چاپ میشه
mostafa mehrjoo

11 فروردین 00

1
حذف شده

سلام.

++x$ و x$++ یک واحد به متغیر x اضافه میکنن یعنی x = x + ۱ میشه و ارتباطی با دستور echo نداره.

x$++ اصطلاحاً pre-increment هست. اگر بخوام خیلی ساده بگم منظور اینه که اول عمل پلاس پلاس انجام میشه و بعد بقیه ی دستورات اون Line از کد اجرا میشه.

++x$ هم post-increment هست. یعنی اول دستورات اون Line انجام میشه و بعد عمل پلاس پلاس.

 

چنتا مثال:

<?php
$i = 1;
echo $i++; // output: 1

echo '<br>';

echo $i; // output: 2

 

<?php
$i = 1;
$j = 1 + $i++ + 3;
echo $j; // output: 5

 

<?php
$i = 1;
$j = 1 + ++$i + 3;
echo $j; // output: 6

 

فایل پیوست

محسن موحد

توسط

محسن موحد

20 خرداد 99

حذف شده
سلام جناب موحد. سپاس از لطف شما. در ابتدای این ویدیو دیدیم که pre-increment جلوی echo بود و مقدار 11 رو چاپ کرد. تا اینجا درست. اما طبق فرمایش استاد صالحی در دستور بعدی که post-increment بود، مقدار متغیر از 10 گرفته نشد بلکه از 11 ای که echo چاپ کرده بود و «در حافظه ذخیره کرده بود» گرفته شد. آیا echo چیزی در حافظه ذخیره میکنه و صرفا جهت چاپ نیست؟
امیرحسین شکری

20 خرداد 99

حذف شده
ببینید عمل پلاس پلاس هیچ ارتباطی با دستور echo نداره و دستور echo تنها کاری که میکنه اینه که یک خروجی تولید کنه. همونطور که گفتم x++ و ++x مقدار x رو یک واحد اضافه میکنن و مقدار جدید داخل x ریخته میشه. طبق فرمایش شما وقتی pre-increment انجام شده پس x = 11 شده و در تمام دستورات اگر x رو استفاده کنید مقدار 11 داخل هست حالا ازاین خط به بعد چه x++ کنید چه ++x کنید تفاوتی نمیکنه اون مقدار 11 هست که یک واحد اضافه میشه یعنی 12 و داخل x ریخته میشه.
محسن موحد

20 خرداد 99

1
حذف شده
echo $i++ به این معنی است که اول متغیر رو چاپ کنه بعد یک واحد به اون اضافه کنه در این صورت اگر برای بار دوم متغییر رو چاپ کنید یک واحد به اون اضافه شده 

echo ++$i به این معنی است که اول یک واحد به مقدار اضافه بشه سپس چاپ بشه 

 

 

فایل پیوست

ابراهیم محمدی

توسط

ابراهیم محمدی

20 خرداد 99

حذف شده
سلام و سپاس جناب محمدی. سوال بنده دقیقا همین قسمت از فرمایش شماست: «...در این صورت اگر برای بار دوم متغییر رو چاپ کنید یک واحد به اون اضافه شده» علت این امر چیه؟ مگر وظیفه echo صرفا چاپ نیست؟
امیرحسین شکری

20 خرداد 99

0
حذف شده

سلام یه فایل پیوست براتون گذاشتم . عملیات افزایشی و کاهشی در دو نوع پیشوندی و پسوندی هستند . در عملیات پیشوندی اول به مقدار متغیر یک واحد اضافه یا کم میشه بعد در محاسبات میاد ولی در عملیات پسوندی اول مقدار متغیر در محاسبات میاد بعد در حافظه یک واحد به مقدار متغیر اضافه یا کم میشود و وقتی دستور چاپ میدید مقداری که در حافظه است را به شما می دهد

فایل پیوست

mostafa mehrjoo

توسط

mostafa mehrjoo

11 فروردین 00