Исходя из C # Я привык перегружать свои методы с изменяемыми типами параметров. Поскольку вы не можете сделать это в PHP , я часто создаю такие методы, как пример ниже, которые принимают переменную, затем я проверяю тип и действую соответственно:
showLength('one');
showLength(array(
'one',
'two',
'three'
));
function showLength($stringOrArray) {
$arr = array();
if(is_array($stringOrArray)) {
$arr = $stringOrArray;
} else if(is_string($stringOrArray)) {
$arr[] = $stringOrArray;
} else {
//exception
}
foreach ($arr as $str) {
echo strlen($str).'<br/>';
}
}
вывод:
3
3
3
5
4
Это дает мне ту же функциональность, что и в C #, но кажется немного запутанной, как будто есть способ получше.
Это общепринятый способ перегрузки методов в PHP (5.3) или есть способ лучше?