۳ نیما جهان بخشیان
چگونگی استفاده از ثابت‌های کلاس به عنوان پارامتر‌های متد
جامعه پی اچ پی ایجاد شده در ۰۶ اسفند ۱۴۰۱

سلام خسته نباشید

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

نحوه پاس دادن ارگومان به این متد در خارج از کلاس به چه صورته

سلام نیمای عزیز

متوجه سوالت نشدم.

لطفا واضح‌تر توضیح بده.

برای پاس دادن ثابت یک کلاس به عنوان آرگومان بصورت استاتیک باید صدا بزنی مثلا:

A::MYCONST یک ثابت از کلاس A هست

(new exampleClass)->getMe(A::MYCONST);
احمدرضا فاطمی کیا ۰۶ اسفند ۱۴۰۱، ۲۰:۳۹
class Msg
{
    private const ERROR_MSG_TYPE = 'error';
    private const INFO_MSG_TYPE = 'info';
    private const SUCCESS_MSG_TYPE = 'success';
    public function createFlashMessage(string $name, string $message, string $type): void
    {
        if (isset($_SESSION['FLASH'][$name]))
            unset($_SESSION['FLASH'][$name]);
        $_SESSION['FLASH'][$name] = ['message' => $message, 'type' => $type];
    }
}
$msg = new Msg;
$msg->createFlashMessage('status', 'ok', $type);

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

نیما جهان بخشیان ۰۶ اسفند ۱۴۰۱، ۲۱:۰۳

سلام نیما جان، باید ثابت هایی که در کلاس Msg گذاشتی بصورت پابلیک باشه تا خارج از خودِ کلاس هم بهشون دسترسی داشته باشی.

بعد به صورت زیر میتونی type رو مشخص کنی:

$msg = new Msg;
$msg->createFlashMessage('status', 'ok', Msg::SUCCESS_MSG_TYPE);
بهترین پاسخ
صادق برزگر ۰۶ اسفند ۱۴۰۱، ۲۲:۱۸