Почему PHP поддерживает только подсказку типа для массивов и объектов? Я хочу использовать подсказку типа, например:
protected function addServiceToken(string $token)
{
if(!array_key_exists($token, $this->service_tokens))
$this->service_tokens[$token] = 'waiting';
return $this->checkServiceTokenStatus($token);
}
Вместо добавления менее элегантного вызова is_string($token)
, чтобы обеспечить правильный тип аргумента.
@Даниэль Эгеберг пишет в ответ на соответствующий вопрос:
В настоящее время существует реализация, поддерживающая это в соединительной линии SVN версию PHP, но она не определилась, будет ли эта реализация один, который будет выпущен в будущих версиях PHP, или если он будет поддерживается вообще.
Итак, по-видимому, кто-то (или somemany), кроме меня, хотел бы использовать этот синтаксис и наоборот. Если код уже написан, почему кто-то не хочет его включать, в частности, поскольку тип-намек является необязательным выбором? Я лично хотел бы, чтобы PHP продолжал использовать больше таких функций, которые поощряют "хорошие" методы кодирования, такие как проверка типа переменной перед ее использованием. Какую пользу они увидели в исключении скалярных типов, когда они добавили тип намека на язык?