輸入提示類和介面

在 PHP 5 中新增了類和介面的型別提示。

類型別提示

<?php

class Student
{
    public $name = 'Chris';
}

class School
{
    public $name = 'University of Edinburgh';
}

function enroll(Student $student, School $school)
{
    echo $student->name . ' is being enrolled at ' . $school->name;
}

$student = new Student();
$school = new School();

enroll($student, $school);

上面的指令碼輸出:

克里斯正在愛丁堡大學就讀

介面型別提示

<?php

interface Enrollable {};
interface Attendable {};

class Chris implements Enrollable
{
    public $name = 'Chris';
}

class UniversityOfEdinburgh implements Attendable
{
    public $name = 'University of Edinburgh';
}

function enroll(Enrollable $enrollee, Attendable $premises)
{
    echo $enrollee->name . ' is being enrolled at ' . $premises->name;
}

$chris = new Chris();
$edinburgh = new UniversityOfEdinburgh();

enroll($chris, $edinburgh);

以上示例輸出與以前相同:

克里斯正在愛丁堡大學就讀

自我提示

self 關鍵字可用作型別提示,以指示該值必須是宣告該方法的類的例項。