PHP Tapez les classes et les interfaces de conseil


Exemple

L'indication de type pour les classes et les interfaces a été ajoutée en PHP 5.

Indice de type de classe

<?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);

Le script ci-dessus affiche:

Chris est inscrit à l'Université d'Edimbourg


Indice de type d'interface

<?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);

L'exemple ci-dessus produit le même résultat que précédemment:

Chris est inscrit à l'Université d'Edimbourg

Indices de type auto

Le mot-clé self peut être utilisé comme indicateur de type pour indiquer que la valeur doit être une instance de la classe qui déclare la méthode.