با عرض سلام خدمت کاربران سایت پی وی لرن. در این جلسه قصد داریم تا متغیر ها در زبان php رو به شما آموزش دهیم.
متغیر ها در واقه خانه هایی از حافظه هستند که اطلاعات رو در خودشون ذخیره می کنند.
همچنین برای آشنایی بیشتر با زبان php و نحو دستورات آن می توانید به آموزش Syntax زبان PHP مراجعه نمایید.
در زبان php متغیر ها با علامت $ آغاز می شوند و در ادامه نام متغیر به همراه آن می آید.
1 2 3 4 5 | <?php $txt = "Hello world!"; $x = 5; $y = 10.5; ?> |
بعد از اجرا شدن دستورات فوق، متغیر txt$ مقدار !Hello World را در خود ذخیره می کند. همچنین متغیر x$ مقدار ۵ را در خود ذخیره می کند و متغیر y$ نیز مقدار ۱۰٫۵ را در خود ذخیره می کند.
نکته: وقتی می خواهید متنی را در متغیری ذخیره کنید، دابل کوتیشن “ را در ابتدا و انتهای آن اضافه کنید.
درستور echo معمولا برای نمایش داده بر روی صفحه نمایش می باشد.
به مثال زیر توجه فرمایید:
1 2 3 4 | <?php $txt = "pvlearn.com"; echo "I love $txt!"; ?> |
مثال زیر نیز خروجی مشابه مثال بالا تولید می کند:
1 2 3 4 | <?php $txt = "pvlearn.com"; echo "I love " . $txt . "!"; ?> |
در مثال زیر ما جمع دو متغیر را نمایش می دهیم.
1 2 3 4 5 | <?php $x = 5; $y = 4; echo $x + $y; ?> |
در مثال بالا ما به PHP نگفتیم که متغیر هایمان از چه نوعی هستند.
php متغیر ها رو بسته به نوع مقداری که به اون میدیم، به نوع داده صحیح تبدیل میکنه.مثلا ما به دو متغیر در مثال بالا مقداری از نوع عدد دادیم که php به صورت خودکار اون ها رو به متغیر هایی از نوع اعداد تبدیل می کنه.
در زبان های برنامه نویسی دیگه از جمله java یا ++c ، برنامه نویس باید نوع متغیر رو قبل از استفاده از اون تعریف کنه.
قلمرو یا Scope یک متغیر، محدوده ای هست که اجازه دسترسی و استفاده از اون متغیر رو داریم.
در php ما اجازه داریم تا متغیر ها رو در هرجایی از کد تعریف کنیم.
php سه نوع قلمرو مختلف برای متغیر ها دارد:
متغیری که خارج از یک تابع یا فانکشن تعریف بشه، دارای قلمرو سراسری می باشد و فقط خارج یک تابع میتونه در دسترس باشه.
1 2 3 4 5 6 7 8 9 10 11 | <?php $x = 5; // global scope function myTest() { // استفاده از متغیر x در داخل این تابع یک خطا رو به همراه داره echo "<p>Variable x inside function is: $x</p>"; } myTest(); echo "<p>Variable x outside function is: $x</p>"; ?> |
متغیری که داخل یک تابع تعریف می شود، دارای قلمرو محلی می باشد و فقط داخل تابع در دسترس هست.
به مثال زیر توجه فرمایید:
1 2 3 4 5 6 7 8 9 10 | <?php function myTest() { $x = 5; // local scope echo "<p>Variable x inside function is: $x</p>"; } myTest(); // استفاده از متغیر x در این مکان یک خطا رو به همراه داره echo "<p>Variable x outside function is: $x</p>"; ?> |
نکته: شما می تونید متغیر هایی با نام یکسان داخل توابع مختلف تعریف کنید بدون این که مشکلی به وجود بیاد. چون متغیر های محلی فقط داخل تابعی که تعریف شده اند قابل شناسایی هستند.
کلمه کلیدی global برای دسترسی پیدا کردن به یک متغیر از داخل تابع استفاده می شود.
برای انجام این کار تنها کافیست کلمه global رو قبل از متغیر بیاورید.
به مثال زیر توجه فرمایید:
1 2 3 4 5 6 7 8 9 10 11 12 | <?php $x = 5; $y = 10; function myTest() { global $x, $y; $y = $x + $y; } myTest(); echo $y; // outputs 15 ?> |
وقتی اجرای یک تابع به پایان می رسد، تمام متغیر هایی که داخلش تعریف شدند پاک می شوند. اما ما بعضی اوقات به متغیر هایی نیاز داریم تا پس از اجرای تابع همچنان مقدار خودشون رو حفظ کنن. برای این کار ما از کلمه کلیدی static استفاده می کنیم.
به مثال زیر توجه فرمایید:
1 2 3 4 5 6 7 8 9 10 11 | <?php function myTest() { static $x = 0; echo $x; $x++; } myTest(); //0 myTest(); //1 myTest(); //2 ?> |
بنابراین، هر وقت که ما تابع رو فراخوانی میکنیم، متغیر هنوز مقدار قبلی خودش رو حفظ کرده.