PDA

View Full Version : متغیر تابع



olampiad
یک شنبه 31 فروردین 1393, 20:48 عصر
سلام
چه طور میشه یه متغیر ی که داخل تابعی تعریف کردیم رو بیرون از تابع هم استفاده کرد.
یا اصلا این کار غیر ممکن است.
ممنون

Golsha
یک شنبه 31 فروردین 1393, 21:31 عصر
سلام ، میشه ، اول باید متغیر رو به صورت سراسری تعریف کنی وبعد تو تابع ازش استفاده کنی مثلا :


$myvar = 1;
function name(){
$this->myvar += 4;
}
echo $this->myvar; // return 5


البته این واسه کلاسه ، اگه تو بدنه برنامه خواستی استفاده کنی $this رو ور دار و فقط از $myvar += 4 استفاده کن

abolfazl-z
یک شنبه 31 فروردین 1393, 22:51 عصر
سلام ، میشه ، اول باید متغیر رو به صورت سراسری تعریف کنی وبعد تو تابع ازش استفاده کنی مثلا :


$myvar = 1;
function name(){
$this->myvar += 4;
}
echo $this->myvar; // return 5


البته این واسه کلاسه ، اگه تو بدنه برنامه خواستی استفاده کنی $this رو ور دار و فقط از $myvar += 4 استفاده کن

فکر کنم دوستمان یک مبحث را از قلم انداختن.


$v = 1;

function test()
{
global $v;
$v = 2;
}
echo $v;

در واقع یک مطلبی هست به نام scope
ما چهار نوع حوزه در PHP داریم :
1. حوزه متغیر های محلی : متغیر هایی که در داخل تابع تعریف می شوند.
2. حوزه متغیر های عمومی : همان متغیر هایی که در بیرون از تابع و در بدنه اصلی برنامه تعریف می شوند.
3. حوزه متغیر های عمومی که در داخل تابع با واژه global تعریف می شوند.
4. حوزه متغیر های فرا عمومی : مانند $_GET یا $_POST و ...

هر کدام از این حوزه ها دارای یک life time (طول عمر) هستند که بیانگر مدت زمانی هست که در حافظه مستقر هستند.
طول عمر متغیر های شماره 2 3 4 با اتمام صفحه از بین می روند.
طول عمر متغیر شماره 1 با اتمام تابع از بین می روند.