🔥 با کمک هوش مصنوعی در کمتر از 6 ماه فول‌استک شوید ...
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ آریانو شرع‌پسند
عملکرد متد performActions
الیا دهقان حل شده توسط الیا دهقان
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 رو داریم

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

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

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

موفق باشی

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