راکت
حل شده

فراخوانی متغیر static

1 پاسخ

با سلام.
بنده کدی رو نوشتم که یک متغیر static می سازه. پس از اون می خوام این تابع static رو در یک فانکشن دیگه دریافت کنم.

function action_admin_menus($action){
    static $action_2;
    $action_2 = array('menu');
    array_push($action_2, $action);
}
function get_action_admin_menu(){  foreach ($action_2 as $value) { $value(); }; }

در کد بالا من یک تابع ساختم که متغیر اکشن رو دریافت می کنه.
بعد یک آرایه اکشن دو می سازه و اکشن رو به اکشن دو اضافه می کنه.
من قصد دارم که اکشن دو رو در تابع get_action_admin_menu دریافت کنم. اما نمی دونم چطور.
لطفا راهنمایی کنید.

ثبت پرسش جدید

پاسخ‌ها

1
محمد امیری
محمد امیری
@mohammadeng3731

تخصص: backend coder

بهترین پاسخ

سلام.
اولا اینکه به جای اینکار بهتره این دوتا متد رو داخل کلاس ایجاد کنید و با ذخیره داخل property تغییرات رو داخل یه متد دیگه بگیرید.
ولی چیزی که شما میخواین global variable هستش چون متغیر های استاتیک scoped هستند و داخل تابع فقط قابلیت فراخوانی دارند برای حل این مشکل کد زیر رو میتونید ببینیند:

function action_admin_menus(string $action): void
{
    global $action_2;
    $action_2[] = $action;
}
action_admin_menus('menu');
action_admin_menus('ali');
action_admin_menus('hassan');

function get_action_admin_menu()
{
   global  $action_2;

   var_dump($action_2);
}

شاید پاسخ شما همین‌جا باشد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام