Brug af funktioner og ‘key-value pairs’

Nu lærer vi at ‘spare kode’ ved hjælp af h.h.v. funktioner og ‘key-value pairs’.

Funktioner

Python

>>> def hils(fornavn, efternavn):
...     besked = "Velkommen %s %s" % (fornavn, efternavn)
...     return besked
...
>>> def alderBeregner(alderNu,omXAar):
...     nyAlder = alderNu + omXAar
...     return nyAlder
...
>>> fornavn = "Kaj"
>>> efternavn = "Frøben"
>>> alder = 40
>>> hilsen = hils(fornavn, efternavn)
>>> print hilsen
Velkommen Kaj Frøben
>>> alderOm5Aar = alderBeregner(alder, 5)
>>> alderOm9Aar = alderBeregner(alder, 9)
>>> print alderOm5Aar, alderOm9Aar
45 49

Javascript

<script type="text/javascript">

function hils(fornavn, efternavn) {
    besked = 'Velkommen ' + fornavn + ' ' + efternavn;
    return besked;
}
function alderBeregner(alderNu,omXAar) {
    nyAlder = alderNu + omXAar;
    return nyAlder;
}

var fornavn = "Kaj";
var efternavn = "Frøben";
var alder = 40;
var hilsen = hils(fornavn, efternavn);
alert(hilsen);// Kaj Frøben

var alderOm5Aar = alderBeregner(alder, 5);
var alderOm9Aar = alderBeregner(alder, 9);
console.log(alderOm5Aar, alderOm9Aar); // 45 49

</script>

PHP

function hils($fornavn, $efternavn) {
    $besked = sprintf("velkommen %s %s", $fornavn, $efternavn);
    return $besked;
}
function alderBeregner($alderNu, $omXAar) {
    $nyAlder = $alderNu + $omXAar;
    $return $nyAlder;
}

$fornavn = "Kaj";
$efternavn = "Frøben";
$alder = 40;
$hilsen = hils($fornavn, $efternavn);
echo "Her siger man '$hilsen'";// Her siger man 'Velkommen Kaj Frøben'

$alderOm5Aar = alderBeregner(alder, 5);
$alderOm9Aar = alderBeregner(alder, 9);
echo(alderOm5Aar); // 45
print(alderOm9Aar); // 49

Data i ‘key-value pairs’

Nu gemmer vi data i en såkaldte ‘key-value pairs’, som kaldes dictionary, object literal og associative array i h.h.v. Python, Javascript og PHP.

Python

Vi lægger alt kode i en seperat python fil, test.py:

# -*- coding: utf-8 -*-

kaj = {
    'fornavn' : 'Kaj',
    'efternavn' : 'Frøben',
    'alder' : 40,
    'ilive' : True,
    'elsker' : ['Jazz med saxer','Fluer','Andrea'],
}
andrea = {
    'fornavn' : 'Andrea',
    'efternavn' : 'Fuglsang',
    'alder' : 40,
    'ilive' : True,
    'elsker' : ['En stille sang','Bær','Kaj'],
}
print kaj
print "======="
print kaj['efternavn']
print andrea['efternavn']
print "======="
print andrea['elsker']

terminal

$ python test.py
{'efternavn': 'Fr\xc3\xb8ben', 'fornavn': 'Kaj', 'elsker': ['Jazz med saxer', 'Fluer', 'Andrea'], 'alder': 40, 'ilive': True}
=======
Frøben
Fuglsang
=======
['En stille sang', 'B\xc3\xa6r', 'Kaj']

Javascript

Vi lægger alt kode i en seperat javascript fil, test.js, som vi henter i index.html:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Vores test side</title>
</head>
<body>
<h1>Mit overskrift</h1>
<p>Noget tekst...</p>
<script type="text/javascript" src="test.js"></script>
</body>
</html>

test.js (bemærk; ingen ‘overflødig’ komma til sidst i object literal, eller array for den sags skyld)

var kaj = {
    'fornavn' : 'Kaj',
    'efternavn' : 'Frøben',
    'alder' : 40,
    'ilive' : true,
    'elsker' : ['Jazz med saxer','Fluer','Andrea']
};
var andrea = {
    'fornavn' : 'Andrea',
    'efternavn' : 'Fuglsang',
    'alder' : 40,
    'ilive' : true,
    'elsker' : ['En stille sang','Bær','Kaj']
};

console.log( kaj );
console.log(  "=======" );
console.log(  kaj['efternavn'] );
console.log(  andrea.efternavn );
console.log(  "=======" );
console.log(  andrea.elsker );

PHP

Vi lægger alt kode i en seperat PHP fil, test.php, som vi henter i index.php:
test.php

<?php

$kaj = array(
    'fornavn' => 'Kaj',
    'efternavn' => 'Frøben',
    'alder' => 40,
    'ilive' => true,
    'elsker' => ['Jazz med saxer','Fluer','Andrea'],
);
$andrea = {
    'fornavn' => 'Andrea',
    'efternavn' => 'Fuglsang',
    'alder' => 40,
    'ilive' => true,
    'elsker' => ['En stille sang','Bær','Kaj'],
};

index.php

<?php
require('test.php');

print_r( kaj );
print(  "=======" );
echo(  kaj['efternavn'] );
echo "<br>\n";
print(  andrea.efternavn );
echo( "<br>\n" );
print(  "=======" );
var_dump(  andrea.elsker );