Есть несколько способов справиться с этим ...
- Используйте IDE, которая поддерживает докблоки.Это относится к проверке типов перед выполнением при написании кода.
- Используйте проверку типов в пределах вашей функции Это помогает только при проверке типа во время выполнения, и вы не узнаете при написании кода.
- В зависимости от типа вы можете использовать встроенный тип подсказки.Однако это работает только для нескалярных значений, в частности
array
и имени класса.
1 - Чтобы реализовать # 1 с помощью хорошей IDE, вы можете заблокировать свою функцию следующим образом:
/**
* Say hello to someone.
*
* @param string $aName
**/
public function sayHello($aName) {
2 - Для реализации # 2 используйте методы is_
.
public function sayHello($aName) {
if (!is_string($aName)) {
throw new ArgumentException("Type not correct.");
}
// Normal execution
3 - Вы не можете сделать это с помощью вашего метода выше, но что-то вроде этого .. ВидТак же, как # 2, кроме выдает бросаемую фатальную ошибку, а не ArgumentException
.
public function manipulateArray(array $anArray) {
Стоит отметить, что большая часть этого довольно неактуальна, если вы не пишете общедоступный код библиотеки.Вы должны знать, что принимают ваши методы, и если вы в первую очередь пытаетесь написать код хорошего качества, вы должны проверить это заранее.
Использование хорошей IDE (я рекомендую phpStorm тысячу разболее) вы можете и должны использовать DocBlocks везде, где можете для всех своих классов.Это не только поможет при написании API и нормального кода, но вы также можете использовать его для документирования своего кода. Что если вам нужно взглянуть на код через 6 месяцев, скорее всего, вы не запомните его на 100% :-)
Кроме того, с docblocks можно сделать гораздо больше, чем просто определить типы параметров, посмотрите это.