یاسین احمدیان
2 سال پیش توسط یاسین احمدیان مطرح شد
1 پاسخ

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

با سلام.
بنده کدی رو نوشتم که یک متغیر 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 دریافت کنم. اما نمی دونم چطور.
لطفا راهنمایی کنید.


ثبت پرسش جدید
محمد امیری
تخصص : backend coder
@mohammadeng3731 2 سال پیش مطرح شد
0

سلام.
اولا اینکه به جای اینکار بهتره این دوتا متد رو داخل کلاس ایجاد کنید و با ذخیره داخل 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);
}

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

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