PDA

View Full Version : استفاده از کلاسي که object در ان ساخته ميشود



AriaGlobal
یک شنبه 13 مهر 1393, 20:27 عصر
با سلام، چطور میتونم کلاسی که در اون يک آبجکت را new کردم بدست بيارم!؟
ميدونم سوالم خيلي نامفهومه برای همین با کد مثال میزنم!

يک کلاس دارم به این شکل

class Me{


public function Hi()
{
echo ('hello world');
}
}


و کلاس مستر :

class Master{


public $Me = null;


function Master ()
{
$this->Me = new Me ();
}
}

مي بینید که من تو کلاس مستر اومدم و یک ابجکت از کلاس Me ايجاد کردم، حالا من میخواهم يک اينستنس از کلاس مستر که در اون Me ايجاد شده به ابجکت me ارسال بشه..
اما سوال اینه که چطوري :خجالت:

من از این راه استفاده کردم که تو construct کلاس me ميام و $this رو وارد میکنم که اينستنس از مستر رو به ابجکت me منتقل میکنه
اينحوري :

class Master{


public $Me = null;


function Master ()
{
$this->Me = new Me ($this);
}
}

منتظر جواب هاتون هستم!

MRmoon
یک شنبه 13 مهر 1393, 21:23 عصر
درود.


Class Me{ var $Master;
function __construct($Master) { $this->Master = $Master; }
public function Hi() { echo ('hello world'); }}
class Master{ public $Me = null; function __construct () { $this->Me = new Me ($this); }}

​محمد.

AriaGlobal
یک شنبه 13 مهر 1393, 22:02 عصر
درود.


Class Me{ var $Master;
function __construct($Master) { $this->Master = $Master; }
public function Hi() { echo ('hello world'); }}
class Master{ public $Me = null; function __construct () { $this->Me = new Me ($this); }}

​محمد.

دوست عزیز محمد جان، لطفا پست من را تا انتها بخونید! من خودم از همین راهی که فرمودید الان دارم استفاده میکنم و در پست هم عرض کردم که این کار رو میکنم اما من ميخواهم در کلاس Me بتونم کلاسي که Me درش ایجاد شده رو بدست بیارم بودن اینکه اينستنس رو از طریق construct منتقل کنم!

MRmoon
دوشنبه 14 مهر 1393, 07:30 صبح
درود.

سوالت یکم نا مفهمومه.

اگه منظوتون اینه بدون انتقال دادن مستقیم بدست بیارید نمیشه.

محمد.

AriaGlobal
دوشنبه 14 مهر 1393, 08:32 صبح
درود.

سوالت یکم نا مفهمومه.

اگه منظوتون اینه بدون انتقال دادن مستقیم بدست بیارید نمیشه.

محمد.

ببینید نمیخواهم $this رو از طریق سازنده یا هر متد دیگه ای ارسال کنم، من ميخواهم خود اون کلاس new شده بدونه که در چه ابجکتی ساخته شده!
البته با overload کردن اپراتور new ميشه اين کار کرد، چون new یک اپراتوره مثل ++ و.. اما اونجوري باید یک یک Dll بنویسم به عنوان
Extensions نصبتش کنم رو سرور.

MRmoon
دوشنبه 14 مهر 1393, 13:35 عصر
درود.

خودتون جواب خودتون رو دادین دیگه.

محمد.

AriaGlobal
دوشنبه 14 مهر 1393, 21:37 عصر
درود.

خودتون جواب خودتون رو دادین دیگه.

محمد.

خوب اگه از یه extension بنويسم برای این کار باید به کاربر بگم این dll رو بگیر به مدیر هاستت بگو واست رو سرور نصب کنه! خوب هاستینگ ها اکثرا قبول نمیکنن