سرمایه گذاری متفاوت در سال نو 🍎🌱 ۳۵٪ تخفیف نوروزی ➕ حضور رایگان در مسترمایند نخبگان صنعت نرم‌افزار 💻✅
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ علیرضا شاهسواری
عملکرد متد performActions
Deleted حل شده توسط Deleted
protected function performActions()
{
   $action = $this->getAction();
   $this->{$action}();
}

سلام استاد وقتتون بخیر ، جسارتا ممکن هست در مورد عماکرد این تابع کمی بنده رو راهنمایی بفرمایید؟

protected function performActions()
{
   $action = $this->getAction();
   $this->{$action}();
}

 

علیرضا شاهسواری ۰۸ شهریور ۱۳۹۸، ۰۸:۲۳

سلام. دقیقا با کدوم بخش مشکل دارین؟ لطفا برای قرار دادن کد حتما از آیکن کدهای editor استفاده کنید.

کیوان علی محمدی ۰۸ شهریور ۱۳۹۸، ۱۲:۱۰

سلام

با اجازه از آقای علیمحمدی

فکر کنم مشکل شما با اون {} باشه
فرض کنید یه action داریم به اسم pay_for_wallet حالا این متد performActions کارش اینه که بیاد یک متدی رو صدا بزنه که اسمش همون pay_for_wallet باشه حالا ما بخوایم این کارو دستی انجام بدیم چیکار میکنیم ؟ میایم مینویسیم :

$this->pay_for_wallet();

اینجا this اشاره میکنه به اون آبجکت جاری که توی هر کدوم از اون handler‌ها فرق میکنه که تو این گزینه ما مثلا توی wallet این pay_for_wallet رو داریم

حالا ما توی performActions اون متد اسمش رو داریم که pay_for_wallet هست و اگر بخوایم اونو صدا بزنیم باید بگیم :

$this->$action();

اما اینجا پی اچ پی برای اینکه مقدار اون action رو بعد از this و علامت -> قرار بده باید اونو داخل {} بزاریم تا متوجه بشه که اول باید مقدار action رو پیدا کنه و بعد اونجا مقدارشو قرار بده که توی این مثال ما pay_for_wallet رو داریم

دقیق مثل استرینگ‌ها میمونه که برای اینکه متغیر‌ها معلوم بشن و جدا بشن از {} استفاده میکنیم البته اونجا اجباری نیست و برای اینه که خودمون بفهمیم این یک متغیره اما توی این مورد اجباریه تا پی اچ پی تشخیص بده اونو

سعی کردم خوب توضیح بدم

مشکلی داشتی دوباره بپرس

موفق باشی

بهترین پاسخ
Deleted ۰۸ شهریور ۱۳۹۸، ۲۱:۲۶