Я обнаружил, что кто-то пишет такой код:
class Abc
{
public function foo(int $bar) : string {}
}
Что значит :
значит в функции? Это трюк или что? Каков эффект изменения string
в bool
или же array
или же int
?
Я просто не понимаю, зачем нам : xxx
а когда его использовали?
Это объявление типа возврата, функция, представленная в PHP 7.
Тип, который вы видите после двоеточия, — это тип, который будет возвращен функцией.
Есть 2 варианта:
По умолчанию возвращаемое значение будет преобразовано в тип, который должен быть возвращен.
В вашем случае он всегда будет преобразован в строку.
Если строгая типизация включена ( declare(strict_types=1);
), вывод должен быть строкой, иначе он выдаст ошибку TypeError.
В любом случае: как разработчик вы всегда уверены, что тип возвращаемого значения является строкой в этом случае.
Не обязательно определять тип возвращаемого значения, поэтому вы можете оставить его, если не хотите. Тип возврата в этом случае может быть любым.
Это декларация возвращаемого типа. В вашем примере это означает, что функция должна возвращать строку. Если возвращаемый результат является строковым (например, объект с определенным __toString ()), он будет приведен к строке, в противном случае произойдет ошибка
Он объявляет тип возвращаемого значения для функции.
function foo (int $bar) : string { }
int $bar
часть говорит, что параметр $ bar должен быть целым числом, а : string
Часть говорит, что функция вернет строку. Если функция не передана int или не возвращает строку, будет выдано TypeError.