Вы можете сделать что-то подобное, что всегда работало для меня
для строки
function setData($Name=""){ }
это заставляет имя быть строкой, оно не проверяет, является ли оно строкой
для числовых значений
function setData($age=0){ }
это заставляет возраст быть числом, если передана строка, значение будет 0
для значений массива есть два варианта
function setData(array $data){ }
если массив не передан, он выдаст ошибку
function setData($data=array()){ }
Это передало бы пустой массив без значения для $data