Тип подсказки существуют для того, чтобы ввести некоторые ограничения на передаваемое или возвращаемое значение.Поскольку «mixed» вообще допускает любое значение, его использование в качестве подсказки типа будет бессмысленным, поэтому просто опустите его.
Были предложения добавить «типы объединения» в язык, что позволило бы вамобъявить тип возвращаемого значения в вашем примере как bool|string
, но ни один еще не был принят.
Что вы можете сделать, это document возвращаемое значение вашей функции в блоке документов.Среды IDE и генераторы документации обычно понимают синтаксис @return bool|string
, и затем вы можете добавить описание , почему тип возвращаемого значения изменяется, и когда ожидать, какой тип.
Конечно,Стоит рассмотреть вариант, который заключается в пересмотре вашего дизайна и предложении функции, которая может сообщить результат без , возвращая различные типы для разных случаев.Например, использование исключений вместо специального значения для ошибок или разбиение функции, такой как getThing(boolean $asString): float|string
, на две функции getThingAsFloat(): float
и getThingAsString(): string
.