Låt dina funktioner svälja allt

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.

This entry was posted in livet and tagged . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>