Я реализую интерфейс Iterator, и если я реализую его возвращая скаляр (по ссылке http://php.net/manual/en/class.iterator.php), Я получил эту ошибку:
TypeError: Возвращаемое значение Collection :: key () должно быть экземпляром
скаляр, целое число возвращено
Реализация класса:
class Collection implements \Iterator
{
public function key(): \scalar
{
return key($this->colecao);
}
// other methods implementations...
}
Согласно справочнику PHP, целое число следует считать скалярным значением (http://php.net/manual/en/migration70.new-features.php):
Скалярные объявления типов бывают двух видов: принудительные (по умолчанию) и
строги. Следующие типы для параметров теперь могут быть применены (либо
принудительно или строго): строки (строка), целые числа (int),
числа с плавающей точкой (float) и логические значения (bool).
Есть ли какая-то ошибка в моем коде, может быть, это ошибка?
Спасибо за любое объяснение!
PHP не имеет типа, известного как \scalar
, PHP поддерживает только те типы. И ваш \scalar
Тип выглядит как другой класс.
Других решений пока нет …