سلام و احترام به همگی
من تو پکیج ها و یا فریم ورک ها تعداد زیادی متدهایی میبینم که شکل زیرو داره
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 میگن. یعنی ساخته شدن یک کلاس با استفاده از کلاس های دیگه.
موفق باشید.