PDA

View Full Version : سوال: برگشت دادن چندین متغیر



abdollah110110
دوشنبه 27 دی 1389, 02:06 صبح
سلام
در یک کلاس چگونه تابعی بنویسیم که چندین متغیر را برگشت دهد؟
مثلا در کلاس زیر:

class modir
{
var $user;
var $password;
function bezar($u,$p)
{
$this->user=$u;
$this->password=$p;
}
function bardar()
{
return $this->user;
//در اينجا
}
}
متشکرم

MMSHFE
دوشنبه 27 دی 1389, 08:01 صبح
با سلام، دوست گرامي همونطور كه ميدونيد با دستور return نميشه بيش از يك مقدار رو برگردونيد چون با اجراي اين دستور، از تابع خارج خواهيد شد. اما اين به معني غيرممكن بودن هدف شما نيست. دو روش براي كاري كه شما ميخواين وجود داره:
1- آرايه اي از مقادير موردنظرتون براي بازگشت توليد كنيد و اون آرايه رو برگردونيد.
2- يكسري پارامتر ارجاعي در تابعتون تعريف كنيد:


class modir
{
var $user;
var $password;
function bezar($u,$p)
{
$this->user=$u;
$this->password=$p;
}
function bardar(&$value)
{
$value=$this->password;
return $this->user;
}
}
چون موقع تعريف پارامتر value$ از & استفاده شده، از نوع ارجاعي خواهد بود. درنتيجه، هر تغييري در بدنه تابع روي اين متغير ايجاد كنيد، روي متغير متناظر با اين كه موقع صدا زدن، براي تابع ارسال شده هم اعمال ميشه. براي مثال، كد زير:


<?PHP
$modir=new modir();
$modir->bezar("ali","12345");
var $user,$pass;
$user=$modir->bardar($pass);
echo("$user<BR/>\n$pass<BR/>\n"); //write out "ali" and "12345"
?>
هر دو متغير user$ و pass$ رو مقداردهي خواهد كرد.
موفق و مؤيد باشيد.