Недавно я начал изучать PHP и, поскольку я привык к строго типизированным языкам (C++, Java), я бы предпочел использовать объявления типа hinting и return type. Однако, когда я пытаюсь использовать декларацию возвращаемого типа для примитивов, я получаю фатальную ошибку, заявляя, что моя функция не возвращает правильный тип.PHP: объявление возвращаемого значения в пространствах имен
Вот пример кода:
<?php
namespace Foo;
class Bar {
public function bar() : boolean {
return true;
}
}
$bar = new Bar();
$bar->bar();
?>
Это вызовет фатальную ошибку, заявив, что Bar :: бар не возвращает значение Foo \ типа булево. Так что я попытался прибегнуть к глобальному пространству имен, изменив прототип функции для:
public function bar() : \boolean
Но тогда я получил фатальную ошибку о том, что моя функция не возвращает значение логического типа. Я предполагаю, что PHP ищет тип, называемый boolean, в глобальном пространстве имен, а не для примитивного типа. Отлично, так как я должен указать, что хочу, чтобы моя функция возвращала значение примитивного типа boolean?
Тип 'bool' не' boolean'. – Roman
Вы также должны поместить 'declare (strict_types = 1);' как первую строку каждого файла. –