Helmertz

webbjunkie

Låt dina funktioner svälja allt

November19

När man sitter och använder klasser man själv inte skrivit kan det vara svårt att veta precis vilka anrop (och i vilka format) som behövs. Om man ska mata in ett flertal värden till en array, t.ex. $db->getById($ids), ska man ange ett flertal via $db->getById(1,2) eller $db->getById(array(1, 2)), eller kanske en blandning: $db->getById(1, 2, array(3, 4))? Designen nedan sväljer allt.

function getById() {
    $args = func_get_args();
    $one_dim_array = array();
    foreach(new RecursiveIteratorIterator(new RecursiveArrayIterator($args)) as $value) {
        $one_dim_array[] = $value;
    }
    return $one_dim_array;
}

Nackdelar:

  • Användare tillåts vara lata och undvika konventioner som kan vara effektivare.
  • Om man inte särbehandlar de inmatade arrayernas nycklar mister man dem, skriven som funktionen ovan fungerar den bäst om bara en typ av argument ska matas in.

Mitten hämtades från phppro.org.

posted under livet

Email will not be published

Website example

Your Comment: