موضوع امروز ما درباره Type Hinting  است.

از زمانی که php5 اومد ما میتونیم موقع تعریف یک function مشخص کنید پارامترهامون از چه نوعی باشن.یعنی به فرض میتونیم بگیم فلان function باید یک پارامتر از نوع آرایه داشته باشد.

مثال :

<?php
function enroll(Student $student, School $school)
{
    echo "Enrolling " . $student->name . " in " . $school->name;
}

به عنوان مثال ما تابع  enroll را تعریف کردیم.این تابع دو پارامتر می پزیرد یکی از نوع  کلاسی به نام Student و دیگری از نوع کلاسی به نام School .

حالا اگر به صورت زیر تابع enroll را صدا بزنیم به ما خطا میدهد زیرا آرگمان اول را درست پاس دادیم ولی آرگان دوم که باید از نوع کلاس Schooll باشد درست پاس داده نشده است.

<?php
$me = new Student("Amanda");
$medicare = new Program("Medicare");
$enroll = enroll($me, $medicare);

خروجی :

Catchable fatal error: Argument 2 passed to enroll() must be an instance of School, instance of Program given, called in typehint.php on line 32 and defined in typehint.php on line 6

حتی می توانیم آرگمان ورودیمون رو مقدار پیشفرض null بدیم.

<?php
function startParty(array $guests, array $food = null)
{
    // party stuff...
}
$guests = ["Susan Foreman", "Sarah Jane Smith", "Rose Tyler", "Donna Noble"];
startParty($guests, null);

 

بدون دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *