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.