Functions

Om ingenting funkar

Kolla semikolon

Kolla "skumma" mellanslag

echo "Hej" . $name . "!";

Kolla så att alla strängar är rätt

PHP standard code style

http://www.php-fig.org/psr/psr-1/

http://www.php-fig.org/psr/psr-2/

Googla på PSR-1 och PSR-2

$numbers = array(5,6,2);
$sum = 0;
for($i = 0; $i < count($numbers); i++){
  $sum += $i;
}
echo $sum;

count() är en inbyggd funktion

Flertal problem

Koden körs direkt hela tiden

Koden körs en gång

Vi har ingen kontroll

Vi upprepar oss

Vi kan inte enkelt kalla på samma kod flera gånger med olika värden

DRY

DON'T REPEAT YOURSELF

Programmerare ska vara lata

Lathet

Skapa en första lösning som FUNKAR

Hitta grundproblemet och lös det

Sen, om det behövs, gör bättre

Refaktorera

Omstrukturering av kod

Tanken är att förbättra, utan att ändra grundfunktionaliteten

Få den mer lättläst

Minska errorrisken

Inkapsling

Eng: encapsulation

Att plocka ut kod som hör samman

Ge den koden ett namn

Allting handlar om struktur

I ett dokument har vi headings som ger oss en överblick t.ex.

Functions

En funktion kapslar in och gör ett kodblock återanvändbart

En funktion kan kallas på när vi vill

En funktion kan kallas på flera gånger med olika värden

function say_hello(){
  echo "Hello";
}

En funktion start med nyckelordet function

Följt av namnet som du ger funktionen

Följt av paranteser

Följt av curly brackets där vår kod ska vara

En funktion körs inte förän du kallar på den

function say_hello(){
  echo "Hello";
}
say_hello(); //echo "Hello"

Där du kallar på funktionen skrivs koden ut

Inte där du skrev koden

Argument & Parametrar

Vi vill ofta kalla på samma kod fast med olika värden

Perfekt tillfället för funktioner

Vi kan även skicka med värden till en funktion

Inom funktionen: parameter

function say_hello($name){
  echo "Hello $name";
}

När vi skickar med värdet: argument

say_hello("Jesper");

"Jesper" lagras i $name

Värdena vi skickar med när vi kallar på funktionen
(argument)

Lagras som variabler (parametrar) inuti funktionen

Variabeln finns enbart inuti funktionen

Vi kan i princip ha hur många argument som helst, håll koll på ordningen dock.

function say_hello($name1, $name2){
  echo "Hello $name1 and $name2";
}
say_hello("Jesper", "Grobb");

return

Oftast vill vi spara värdet från en funktion istället för att skriva ut det

Med echo skrivs det ut, men sparas inte i koden

Med return säger vi att vi ska fortsätta använda värdet som skapas

function say_hello($name){
  return "Hello $name";
}

Vi måste spara värdet som returneras, annars försvinner det

say_hello("Jesper"); //Does "nothing"
echo say_hello("Jesper");
$hello = say_hello("Jesper");
echo $hello;

Mer värt exempel

function add_two_numbers($a, $b){
  $sum = $a + $b;
  return $sum;
}
$sum = add_two_numbers(5,6);
echo $sum * 5; //we can continue using the value
$new_sum = add_two_numbers($sum, $sum);
echo $new_sum;

Övningar på zenit

Samt den första individuella