Bir PHP işlevi değişken bir dize veya dizi bir desen ya da anti-desen ya olmasını sağlayan nedir?

0 Cevap php

Gelen C# Ben değişken yazdığınız parametreleri ile benim yöntemleri aşırı yükleme için alışkınım. Eğer PHP bunu yapamam, çünkü ben sık sık bir değişken kabul eden aşağıdaki gibi örnek olarak yöntemleri oluşturmak, sonra check the type ve buna göre hareket:

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/>';
    }
}

çıktı:

3
3
3
5
4

Bu C # gibi bana aynı işlevselliği verir ama daha iyi bir yol var sanki, biraz dağınık görünüyor.

Is this the accepted way to do method overloading in PHP (5.3) or is there a better way?

0 Cevap