Kebmans blogg

NAV er ingenting mot Simensen advokatbyrå

Posted in Fildeling, Internett, Politikk by kebman on 27/11/2010

Jeg synes ikke det er så ille at NAV overvåker en og annen, når vi likevel har et privat firma som overvåker all din nettbruk, på grunn av personvernsrådgivere som er kjøpt og betalt av bransjen. Dette gjør de med Arbeiderpartiets velsignelse.

Men du har vel ikke noe å skjule, har du vel? <©>

Function og array i PHP

Posted in Økonomi, Programmering, Scripting, Webdesign by kebman on 10/11/2010

#Ruter, selskapet med ansvar for kollektivtransporten i Oslo og Akershus, har for mange billettyper å velge imellom, of derfor kan det være svært vanskelig å vite hva slags billett som er den beste å ha til en hver tid. Som ledd i et personlig korstog for å lage en kalkulator som regner ut den beste billettypen for deg – fordi Ruter sannsynligvis ikke har noen planer om det –  har jeg lekt meg litt med funksjoner og listevariabler i PHP.

<?php
// Pris på enkelbilletter for voksne i Akershus
// Nøkkel: sone => pris
$enkelBillA_v = array(1=>30,2=>40,3=>50,4=>60,5=>70,6=>80,7=>90,8=>100,9=>110,10=>120);

// Funksjon som lager barnebilletter av voksenbilletter
// Opprett funksjonen og send prisene for voksenbilletter til den
function enkelBarneBillA($voksenbilletter) {

// Gjør barnebillettene lik voksenbilettene
$barnebilletter = $voksenbilletter;
// Men gå igjennom alle prisene til barnebilettene...
foreach ($barnebilletter as &$value) {

// ...og del dem i to - HEEE-YAHH!
$value = $value / 2;

}

// Returner svaret ut av funksjonen
return $barnebilletter;
}

// Enkelbiletter for barn i Akershus
$enkelBillA_b = enkelBarneBillA($enkelBillA_v);
// Arrayen er lik outputen av funksjonen enkelBarneBillA(),
// og til denne funksjonen sender vi prisene på alle voksenbillettene
?>

Og en stort vanskeligere måte å dele et tall i to på, skal du vel egentlig lete lenge etter… Men nå har du altså et lite eksempel på hvordan funksjoner kan brukes sammen med listevariabler. Du kan teste den nye variabelen ved å ta med følgende kode:

<?php print_r($enkelBillA_b); ?>

Heldigvis finnes det en litt enklere måte å gjøre det på:

<?php
// Funksjon som halverer det den får inn:
function halver(&$value) { $value = $value / 2; }
// Kopierer priser for voksenbilletter til $barnebill:
$barnebill = $enkelBillA_v;
// Spaserer igjennom $barnebill og halverer alle prisene:
array_walk(&$barnebill, 'halver');
// Helt sant, bare sjekk:
print_r($barnebill);
?>