PHP functions

CMD FED Y2Q2W4 Lesbrief

Leerdoelen

Lesplan

Uitleg PHP documentatie via docs.php.net/manual
Uitleg pre-defined functions
Lesopdracht 1 (individueel)

Uitleg user-defined functions (met en zonder params)
Uitleg local en global variabelen
Uitleg setcookie
Lesopdracht 2 (in groepjes werken)

Uitleg

Online PHP documentatie

Op de website http://php.net is een online documentatie beschikbaar van PHP. Met name de functions die in PHP worden gebruikt kun je hier in terugvinden.
Via deze link wordt de PHP functions handleiding in het nederlands geladen.

Pre-defined HP functions

implode()

De function implode() gebruik je om array elementen aan elkaar te plakken via een bepaalde 'glue' string.

Zie http://php.net/implode

explode()

De function explode() gebruik je om een string te splitsen in een array met behulp van een delimiter.
Zie http://php.net/explode

list()

Hiermee kun je een meerdere variabelen vullen met de inhoud van een array.
Zie http://php.net/list

htmlentities()

De function htmlentities() gebruik je om tekst naar HTML te converteren, met name de speciale characters zoals quotes en dergelijke.
zie http://php.net/htmlentities

date()

De function date() gebruik je voor het werken met datums en tijden. Deze functie geeft na aanroep een string terug.
Zie http://php.net/date

Lesopdracht 1:

Onderzoek bovenstaande functies. Kijk met name naar de zeer uitgebreide functie date welke je ook nodig hebt voor je eerste cijferopdracht.

User‐defined PHP functions

Je kunt zelf functions maken in PHP. De syntax (schrijfwijze) is als volgt opgebouwd:

<?php
function functionName($param) {
  // php code to be executed
}
?>

Via variabelen tussen de ronde haken kunnen gegevens aan de functie worden doorgegeven.
In bovenstaand voorbeeld is één doorgeef-variabele gebruikt, dat is de variabele $param.

Een parameter in een function is niet verplicht; je kunt ook een functie zonder parameters maken:

<?php
function functionName() {
// php code to be executed
}
?>

functie aanroepen met meerdere parameters

Je kunt ook een functie met meerdere parameters maken:

<?php
function functionName($param1, $param2, $param3) {
// php code to be executed
}

Het werken met een functie kan op de volgende manieren:

  1. in de functie voer je een aantal instructies uit welke niet direct iets teruggeven. Dit wordt ook wel een procedure genoemd.
    Vergelijk het met het schoffelen van een tuintje; het tuintje wordt een stuk netter maar je hebt niets in je handen als je klaar bent (hooguit wat blaren...)
  2. in de functie voer je een aantal instructies uit die een resultaat teruggeeft. Vergelijk het maar met het halen van een bak koffie uit de automaat; je moet een aantal dingen doen en uiteindelijk heb je een bak koffie (resultaat) in je handen.

voorbeeld manier 1. (schoffelen)
<?php
function showName($firstname,$lastname) {
$name = $firstname." ".$lastname;
echo ($name);
}
?>
aanroep van de function:
<?php
$firstname = "Jantje";
$lastname = "Beton";
showName($firstname,$lastname);
?>
voorbeeld manier 2. (koffie halen)
<?php
function showName($firstname,$lastname) {
$name = $firstname." ".$lastname;
return $name;
}
?>
aanroep van de function:
<?php
$firstname = "Jantje"; 
$lastname = "Beton";
$fullname = showName($firstname,$lastname); //returned output van showName komt in $fullname
echo ($fullname);
?>
functie aanroepen met default parameter value

Als je een functie met parameters aanroept kun je de functie voorzien van een default parameter value. Hierbij is er in de function al een waarde aan een parameter toegekend. Deze wordt overschreven als je deze meegeeft met de aanroep.
In onderstaand voorbeeld zijn de variabelen $firstname en $lastname ingesteld met de defauilt value "onbekend".
Als je de function aanroept met echo showName("Jan","Klaassen") dan worden de default values overschreven.

<?php
function showName($firstname="onbekend",$lastname="onbekend") { $name = $firstname." ".$lastname; echo ($name);
}
?>

COOKIES zetten en uitlezen

Een COOKIE object bevat informatie welke door de server is opgeslagen op de lokale computer
zie boek vanaf pagine 336.
PHP gebruikt hiervoor de superglobal $_COOKIE.

$_COOKIE wordt gevuld met de functie setcookie(). Je moet een cookienaam opgeven als eerste parameter, daarna de inhoud als 2e parameter, daarna geef je op tot wanneer de cookie geldig is. Er zijn nog meer parameters, zie php.net voor uitgebreide informatie.

voorbeeld:

<?php setcookie( "LoginInfo", $username, time()+3600 ); ?>

belangrijk:

Als je gegevens in een cookie gaat bewaren met setCookie dan moet dit als eerste in de PHP pagina plaatsvinden. Als je dit niet doet dan krijg je een foutmelding en wordt de cookie NIET opgeslagen!

Zodra je een cookie hebt opgeslagen met setCookie() dan kun je deze weer bekijken mbv.

<?php print_r($_COOKIE); //tonen inhoud ALLE cookie objecten ?>
<?php echo $_COOKIE['cookienaam'] ; //tonen inhoud cookie object met naam 'cookienaam' ?>

Ook belangrijk:
De inhoud van een cookie wordt pas aangepast bij het verversen van de pagina!

Lokale en globale variabelen

Een lokale variabele is een variabele binnen een functie. De scope (het bereik) van die variabele beperkt zich dus daarbinnen. Een lokale variabele kun je dus niet buiten de functie vullen of lezen.

Een globale variabele is een variabale buiten een functie. De scope daarvan beperkt zich tot het script waarbinnen de variabele wordt gebruikt. Als je een globale variabele maakt en vult, dan kun je deze wel binnen een functie lezen.
Test dit zelf even uit.

Beide variabelen kunnen voorkomen met dezelfde naam; dit is echter verwarrend, want de inhoud is verschillend!
Gebruik daarom voor lokale variabelen een underscore na het dollarteken in de naam.


<?php $firstname = "Sjaak"; //globale variabele $lastname = "Swart"; //globale variabele echo showName($firstname,$lastname);
function showName($_firstname, $_lastname) {
	$name = $_firstname." ".$_lastname;
return ($_name);
} ?>

Eenvoudige file upload

Dit wordt in de workshop behandeld.

Lesopdracht 2:

Maak een functie waarin je een html selectbox vult met een datumreeks. Denk hierbij aan dagnamen, dagnummers in de maand, maandnummers, maandnamen en jaartallen. Tip: Maak eerst een html versie en ga hem daarna met PHP vullen.