Geben Sie Hinting in PHP 7 ein - Array von Objekten

In PHP 7 kann Typ-Hinting verwendet werden, um den erwarteten Datentyp eines Funktions- oder Methodenparameters anzugeben. Um ein Array von Objekten anzugeben, wäre der Parametertyp-Hinweis "array" und der Klassenname der Objekte innerhalb des Arrays, wie folgt:

<?php

// Define an array of objects
$arrayOfObjects = [(object) ["name" => "John", "age" => 30], (object) ["name" => "Jane", "age" => 25]];

// Define a function with a type hint for the parameter "arrayOfObjects"
function someFunction(array $arrayOfObjects)
{
    // Iterate over the array of objects
    foreach ($arrayOfObjects as $object) {
        // Output the name and age of each object
        echo "Name: " . $object->name . ", Age: " . $object->age . "\n";
    }
}

// Call the function with the defined array of objects
someFunction($arrayOfObjects);

// Output:
// Name: John, Age: 30
// Name: Jane, Age: 25

Sie können auch den Klassennamen der Objekte angeben, die im Array sein sollen mit array<ClassName>

<?php

class Person {
  public $name;
  public $age;

  public function __construct($name, $age) {
    $this->name = $name;
    $this->age = $age;
  }
}

// Define an array of Person objects
$arrayOfPeople = [
  new Person("John", 30),
  new Person("Jane", 25)
];

// Define a function with a type hint for the parameter "arrayOfObjects"
function someFunction(array<Person> $arrayOfPeople) {
    // Iterate over the array of objects
    foreach ($arrayOfPeople as $person) {
        // Output the name and age of each object
        echo "Name: " . $person->name . ", Age: " . $person->age . "\n";
    }
}

// Call the function with the defined array of objects
someFunction($arrayOfPeople);

// Output:
// Name: John, Age: 30
// Name: Jane, Age: 25

Dies stellt sicher, dass nur Arrays mit Objekten der angegebenen Klasse als Argument an die Funktion übergeben werden können.