متغیر ها درون و بیرون از عملگرها
متغیر ها درون و بیرون از عملگرها :سلام ، امروز به یک آموزش ساده دیگه از سری آموزش های کاربردی پی اچ پی در خدمتتون هستم ، موضوع بحث به صورت خیلی خلاصه ارتباط داره با موضوع ” استفاده از متغیر ها درون و بیرون از عملگر ها ”
به صورت پیش فرض اگر بخواهیم عملگری (function) بنویسیم متغییر هایی که براشون تعریف می کنید ، فقط در داخل خود عملگر قابل استفاده است و خارج از عملگر قابلیت استفاده ندارند.
به این مثال دقت کنید :
1 2 3 4 5 6 7 8 9 10 11 |
<?php $x = 5; // global scope function myTest() { // using x inside this function will generate an error echo "<p>Variable x inside function is: $x</p>"; } myTest(); echo "<p>Variable x outside function is: $x</p>"; ?> |
Result :
Variable x inside function is:
Variable x outside function is: 5
در این مثال : مقداردهی x خارج از فانکشن تعریف شده بوده ، و دو مرتبه فراخوانی شده ، یک بار در فانکشن ، یکبار در خارج از فانکشن تعریف شده .
و مقداری که خارج از فانکشن فراخوانی شده ، نتیجه داشته و عدد 5 رو برگردونده.
البته در مثال بالا ، به محض اجرای کد ، به دلیل وجود اشکال در کد ، با خطا رو برو خواهیم شد.
حالا به این مثال دقت کنید :
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(); // using x outside the function will generate an error echo "<p>Variable x outside function is: $x</p>"; ?> |
Result :
Variable x inside function is: 5
Variable x outside function is:
در این مثال : با نقطه مخالف مثال قبلی مواجهیم ، مقداردهی ایکس داخل فانکشن انجام شده ، و دوبار استفاده شده ، یکبار داخل فانکشن تعریف شده ، که خب طبیعیه ، خروجی 5 رو داده ، و یکبار دیگه خارج از فانکشن تعریف شده این عمل انجام شده که قطعا خروجی نخواهیم داشته و با خطا مواجه خواهیم بود.
حالا سوال پیش میاد که راه حل چیه ؟ راه حل متغیر ها درون و بیرون از عملگرها چیست ؟
متغیر ها درون و بیرون از عملگرها
به این مثال دقت کنید :
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(); // run function echo $y; // output the new value for variable $y ?> |
نتیجه : 15
خوب به مثال بالا دقت کنید : دو متغیر x و y رو مقدار دهی کردیم ، “در خارج از فانکشن ”
برای استفاده از این دو متغیر درون فانکشن تعریف شده باید اون ها رو با استفاده از دستور global فراخوانی کنیم تا قابلیت استفاده عمومی پیدا کنن و هرجایی که دوست داشتیم ازشون استفاده کنیم.
کد بالا به صورت زیر هم نوشته میشه و کارایی داره :
1 2 3 4 5 6 7 8 9 10 11 |
<?php $x = 5; $y = 10; function myTest() { $GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y']; } myTest(); echo $y; ?> |