Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Objektorientert programmering i PHP del 2

Liknende presentasjoner


Presentasjon om: "Objektorientert programmering i PHP del 2"— Utskrift av presentasjonen:

1 Objektorientert programmering i PHP del 2
Web-programmering Objektorientert programmering i PHP del 2

2 I dag Litt mer avansert bruk av objektorientert PHP
Gjennomgang av kode. Oppgaveløsning Ukeoppgaver. Oblig 1 leveres 6. mars

3 Objektorientert PHP forts.
Omfang (Scope) på attributter og metoder Get, Set funksjoner Arv Bruk av sessions

4 Objekter og metoder/funksjoner
<?php Class bil { public $tank; public $forbruk; function rekkevidde() $rekkevidde = $this->tank/$this->forbruk; return $rekkevidde; } $volvo = new bil(); $volvo->tank = 80; $volvo->forbruk = 0.7; $rekkeviddeImil = $volvo->rekkevidde(); echo "Rekkevidden til bilen er "; echo number_format($rekkeviddeImil,0)." mil"; ?> Rekkevidden til bilen er 114 mil

5 Omfang (scope) på attributter
Public (åpen utenfor klassen) Private (kan bare brukes inne i klassen) Protected (brukes inne i klassen og arvede klasser) Const (konstant) Var (samme som public)

6 Eksempel på omfang av variabler
<?php Class bil { public $tank; private $forbruk; var $antallHK; const $antallHjul = 4; } $volvo = new bil(); $volvo->tank = 80; $volvo->forbruk = 0.7; // dette går ikke! $volvo->antallHK = 230; echo $volvo->antallHjul; ?> Vil resultere i en ”fatal” error når det kjøres

7 Omfang av metoder (functions)
Public (åpen utenfor klassen) Private (kan bare brukes inne i klassen) Protected (brukes inne i klassen og arvede klasser) Ikke noe før function = public

8 Eksempel, omfang metoder
<?php Class bil { public $tank; public $forbruk; private function beregn() $rekkevidde = $this->tank/$this->forbruk; return $rekkevidde; } public function rekkevidde() $res=this->beregn(); return $res; $volvo = new bil(); $volvo->tank = 80; $volvo->forbruk = 0.7; echo $volvo->rekkevidde(); echo $volvo->beregn(); ?> Vil resultere i en ”fatal” error når det kjøres

9 Bruk av private attributter
Bruk Privat for alle attributter i klasser Skriv så egne metoder for å operere på disse Eks: Private $navn Public Function set_navn($navn) Public Function get_navn();

10 Eksempel, get, set <?php Class bil { private $tank; public function set_tank($innTank) $this->tank = $innTank; } public function get_tank() return $this->tank; $volvo = new bil(); $volvo->set_tank(80); echo $volvo->get_tank; ?> Dette for å sikre at all manipulasjon av variabelen tank skjer via metoder. Kan utvide disse

11 Eksempel, get, set, utvidelse
<?php Class bil { private $tank; public function set_tank($innTank) if($innTank>0) $this->tank = $innTank; } public function get_tank() return $this->tank; $volvo = new bil(); $volvo->set_tank(80); echo $volvo->get_tank; ?> Nå kan det bare settes inn lovlige verdier En tank kan ikke inneholde et negativt tankvolum.

12 Arv Kan definere en klasse som arver egenskaper (metoder og attributter) fra en annen klasse. Eksempel: En klasse bil En klasse lastebil som arver egenskapene til bil-klassen (extends) Lastebil-klassen kan ha egne egenskaper og benytte egenskapene til bil-klassen.

13 Eksempel, arv <?php class lastebil extends bil{
private $lasteKapasitet; public function set_lasteKapasitet($last) { $this->lasteKapasitet=$last; } class bil { private $tank; public function set_tank($tank) $this->tank=$tank; public function get_tank($tank) return $this->tank; $volvo = new lastebil(); $volvo->set_tank(70); $volvo->set_lasteKapasitet(1000); ?> Eksempel, arv Lastebil Bil $tank $lastekapasitet set_tank($tank) get_tank($tank) set_lastekapasitet($last)

14 Eksempel, arv, bruk av constructor
<?php class lastebil extends bil{ private $lasteKapasitet; public function __construct($last,$tank) { parent:: __construct($tank); $this->lasteKapasitet=$last; } public function get_lasteKapasitet() { return $this->lasteKapasitet; class bil { private $tank; public function __construct($tank) { $this->tank=$tank; public function get_tank() { return $this->tank; $volvo = new lastebil(1000,70); echo "Tanken er ".$volvo->get_tank(); ?> Eksempel, arv, bruk av constructor

15 Statiske metoder (som i Java)
class filhandterer { // håndterer all filskriving static function skriv_fil($tekst) $filref=fopen("kjoretoy.txt","a"); $ok = fwrite($filref,$tekst); } // kall til denne klassen/metoden: filhandterer::skriv_fil($stringTilFil); Brukes der det ikke er hensiktsmessig å opprette objekter Generelle klasser/metoder Kanskje litt overkill da man bare kan bruke en funksjon.

16 Sessions og objekter Kan legge objekter inn i sessionvariable
Husk å ha alle klasse definisjonene i alle filene som bruker objektene i sessionene. Samle gjerne alle klassene i en fil og inkluder den i alle de andre Noen mer komplekse strukturer fungerer ikke som sessionsvariable Bla. referanser til objekter.


Laste ned ppt "Objektorientert programmering i PHP del 2"

Liknende presentasjoner


Annonser fra Google