Довольно часто вы хотели бы написать функцию, которая бы принимала одно или несколько значений для параметра:
function getNamesById($id) { }
В этом случае имело бы смысл, если бы эта функция вызывалась с массивом идентификаторов, она, вероятно, должна возвращать массив имен. Точно так же, чтобы избавить вызывающий код от необходимости заключать входные данные в массив, а затем распаковывать выходные данные, если вы просто передаете скаляр, то скаляр должен быть возвращен. Рассмотрим вероятное содержимое функции, предназначенной для обработки как скалярных параметров, так и параметров массива:
function getNamesById($id) {
$returnAnArray = is_array($id);
$output = array();
foreach ((array)$id as $theId) {
// perform some logic
$output[] = someFunction($theId);
}
return $returnAnArray ? $output : $output[0];
}
Вы можете видеть, что в этом случае приведение к массиву определенно облегчает жизнь каждому. Как говорится, будьте либеральными в том, что вы принимаете ... Пока задокументировано, что ожидается , что переменная может быть любой, тогда я не вижу проблем. PHP является типом утки , который имеет как преимущества, так и недостатки, но это одно из преимуществ, поэтому наслаждайтесь им!