Разрешает ли переменная функции PHP быть строкой или массивом, шаблоном или анти-шаблоном?

Исходя из 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) или есть способ лучше?

6
задан Edward Tanguay 20 January 2011 в 13:46
поделиться