也許我錯過了一些東西,但有沒有任何選項來定義該函數應該有參數或返回例如數組User對象?在PHP 7中鍵入提示 - 對象數組
考慮下面的代碼:
<?php
class User
{
protected $name;
protected $age;
/**
* User constructor.
*
* @param $name
*/
public function __construct(string $name, int $age)
{
$this->name = $name;
$this->age = $age;
}
/**
* @return mixed
*/
public function getName() : string
{
return $this->name;
}
public function getAge() : int
{
return $this->age;
}
}
function findUserByAge(int $age, array $users) : array
{
$result = [];
foreach ($users as $user) {
if ($user->getAge() == $age) {
if ($user->getName() == 'John') {
// complicated code here
$result[] = $user->getName(); // bug
} else {
$result[] = $user;
}
}
}
return $result;
}
$users = [
new User('John', 15),
new User('Daniel', 25),
new User('Michael', 15),
];
$matches = findUserByAge(15, $users);
foreach ($matches as $user) {
echo $user->getName() . ' '.$user->getAge() . "\n";
}
是否有任何PHP7選項告知功能findUserByAge
應返回用戶的陣列?我期望在添加類型提示時它應該是可能的,但我還沒有找到任何類型的提示信息,因此可能它沒有包含在PHP 7中。如果沒有包含它,你是否有任何線索爲什麼它是在添加類型提示時不包括在內?
只能按照慣例,例如在DocBlock中使用'@return User []' – Gordon