Проблемы подсказок типа PHP 7

<?php
namespace XYZ\Model;

interface user{
public function getName() : string;
}

?>

Теперь, что происходит, это то, что строка считается типом XYZ\Model\string и, следовательно, любые классы, которые я создаю, реализуя интерфейс, не совпадают (в разных пространствах имен).

Если, однако, я делаю \stringкод не работает с Scalar type declaration must be unqualified,

Кроме того, сколько типов может быть логическим? После удаления некоторых подсказок я получил: Return value of xxxxx::save() must be an instance of boolean, boolean returned in xxxxxx.php:41

4

Решение

Проверено следующее Код на 7.0.3 и это работает нормально, имея в виду, что я добавил недостающий ; рядом с вашим определением пространства имен.

namespace XYZ\Model;

interface user {
public function getName(): string;
}class Test implements User {
public function getName(): string {
return 'SomeName';
}
}

$t = new Test;
echo $t->getName();

Выходы:

SomeName

2

Другие решения

ОБНОВЛЕНИЕ: все в порядке с PHP. это логическое значение, которое не поддерживает хинтинг скалярного типа.

-1

По вопросам рекламы [email protected]