🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ امیر صالحی
ورودی متد یک کلاس از نوع کلاس دیگر
جامعه پی اچ پی ایجاد شده در ۳۰ تیر ۱۳۹۹

سلام و احترام به همگی

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

 private function withTracking(PromiseInterface $promise, string $uri, int $statusCode): PromiseInterface
    {
        return $promise->then(
            static function (ResponseInterface $response) use ($uri, $statusCode) {
                // Note that we are pushing to the front of the list as this
                // would be an earlier response than what is currently present
                // in the history header.
                $historyHeader = $response->getHeader(self::HISTORY_HEADER);
                $statusHeader = $response->getHeader(self::STATUS_HISTORY_HEADER);
                \array_unshift($historyHeader, $uri);
                \array_unshift($statusHeader, (string) $statusCode);
                return $response->withHeader(self::HISTORY_HEADER, $historyHeader)
                                ->withHeader(self::STATUS_HISTORY_HEADER, $statusHeader);
            }
        );
    }

کاری با کدای داخل تابع ندارم، به نوع ورودی تابع دقت کنید، پشت متغیری که به عنوان پارامتر تابع قرار داده، اسم یک کلاس رو آورده. معنی این چیه؟؟ دقیقا چیکار میکنه؟؟ آیا داره نوع ورودی رو با یک کلاس دیگه مقایسه میکنه؟

سلام 

این شکل ورودی یعنی متغیر promise نوعی از  PromiseInterface است 

تا اونجا که من فهمیدم  یک نمونه از کلاس PromiseInterface ساخته شده و داخل متغیر promise ریخته شده تا شما بتونین از پراپرتی‌های اون کلاس استفاده کنین 

مقایسه نیست 

حالا باز هم خودتون سرچ بزنین برای مطالب بیشتر که من اشتباه نکرده باشم!

میثم ۳۰ تیر ۱۳۹۹، ۱۷:۱۱

سلام دوست عزیز.

ارسال نمونه ای از یک کلاس بعنوان پارامتر به متدهای یک کلاس دیگه کاری هست که زیاد انجام میشه در برنامه نویسی شی گرا.

گاهی اوقات یک شی از یک کلاس از چندین شی از کلاس‌های دیگه ساخته میشه (مثلا نمونه هایی از کلاس‌های دیگه رو توی متد constructor خودش نیاز داره - مثلا فرض کنید کلاس ماشین برای ساخته شدن به کلاس‌های موتور، کلاس سیستم تعلیق،  کلاس سیستم کنترل و ... نیاز داره)

به این مفهوم هم Composition یا Class Composition میگن. یعنی ساخته شدن یک کلاس با استفاده از کلاس‌های دیگه.

 

موفق باشید.

فــــــــــــــــــــرزان ۲۲ مرداد ۱۳۹۹، ۱۸:۱۵