PDA

View Full Version : مشکل با متغیر یا محلی و سراسری



mamadco
پنج شنبه 06 فروردین 1394, 16:07 عصر
" مشکل با متغیر های محلی و سراسری " معذرت میخوام عنوان اشتباه تایپ شد


سلام دوستان من آموزشای اقای شکوری رو دنبال میکنم

<?php

function test($name,$type){
global $name;
global $type;
$name = 'mohammad';
$type = 0;
$welcome = "";
switch($type){
case 0 :
$welcome = " خوش اومدی ";
break;
case 1 :
$welcome = "بدرود گرامی";
break;
default :
$welcome ="پیام تعریف نشده است ";
break;
}
echo("<P ALIGN=\"CENTER\">$welcome $name.</P>\n");
}
?>
<?php echo test($name,$type);?>

خوب من الان متغیر های $name و $type رو سراسری کردم و بیرون از تابع فراخوانی کردم .
نتیجه که درسته اما ، مثه این که متغیر ها رو پیدا نمیکنه اینطوری مینویسه

Notice: Undefined variable: name in C:\xampp\htdocs\php\index.php on line 23

Notice: Undefined variable: type in C:\xampp\htdocs\php\index.php on line 23

اما اگه global $name; و global $type; رو بیرون از تابع تعریف بکنم درس میشه .
میشه در این باره یه مقدار توضیح بدین گیج شدم کارم گیر کرده

MMSHFE
پنج شنبه 06 فروردین 1394, 20:41 عصر
شما باید متغیر رو قبل از استفاده تعریف کنید. وقتی از global استفاده میکنید، معناش اینه که یک متغیری با اون اسم در بیرون از تابع وجود داره که شما میخواین از همون توی تابع استفاده کنید و نمیخواین متغیر محلی ساخته بشه. پس باید قبل از نوشتن تابع، توی فضای سراسری متغیر مربوطه رو تعریف کنید. بیرون از تابع نیازی به استفاده از کلمه global برای تعریف متغیر سراسری ندارین.

MMSHFE
پنج شنبه 06 فروردین 1394, 20:45 عصر
ضمناً درصورت تکرار «ایجاد تاپیک در بخش غیر مرتبط» تاپیک شما بدون هشدار قبلی حذف خواهد شد.
انتقال از بخش تاپیکهای آموزشی به تالار اصلی PHP

mamadco
جمعه 07 فروردین 1394, 01:50 صبح
ضمناً درصورت تکرار «ایجاد تاپیک در بخش غیر مرتبط» تاپیک شما بدون هشدار قبلی حذف خواهد شد.
انتقال از بخش تاپیکهای آموزشی به تالار اصلی PHP

ممنون استاد ، فک میکردم اونجا باید بزارم