[OOP] Klein vraagje...

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ilyes Ahidar

Ilyes Ahidar

15/07/2010 17:23:48
Quote Anchor link
Hey iedereen,

Ik ben een tutorial aan het lezen over OOP en ik kwam daar het volgende tegen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
class Gastenboek
{
    private $reacties;
    private $bestand;
    
    public function __construct($bestand)
    {

        $this->bestand = $bestand;
    }

    
    public function reactie_toevoegen(Reactie $reactie)
    {
    }

    
    public function weergeven()
    {
    }
}

?>


Het gaat dan om de regel met: public function reactie_toevogen(Reactie $reactie).
Daar staat voor de variable wat een parameter is van reactie_toevoegen het woord: Reactie. Wat is het en waarvoor is het? Ik weet niet echt hoe ik dat moest opzoeken op google. Heb even gekeken of ik het misschien terug kon vonden op php.net/functions. Maar zonder resultaat.

Dus iemand die mij dat kan uitleggen of een link heeft? Alvast bedankt!
Gewijzigd op 15/07/2010 18:01:09 door Ilyes Ahidar
 
PHP hulp

PHP hulp

22/12/2024 07:48:09
 
Niels K

Niels K

15/07/2010 17:26:46
Quote Anchor link
Allereerst, reactie_toevogen is natuurlijk geen normaal nederlands.. Verder zou ik ook met engelse naamgeving werken, maar dat is natuurlijk eigen keus.

Wat je hier doet is de classe naam opgeven. Dus er bestaat ook nog een class Reactie.

Later kan je bijvoorbeeld dit doen

$reactie->reactie_toevoegen( $this->reactie );
 
M Ypma

M Ypma

15/07/2010 17:33:28
Quote Anchor link
Het wordt "Type hinting" genoemd. Het heeft verschillende voordelen.
Het is bedoeld om af te kunnen dwingen van wat voor type het object moet zijn die je daar als parameter verwacht. Dit kan het type van het object zijn of 1 van de klasse namen die hij extend. Of de naam van de interface die hij geïmplementeerd moet hebben. Zo kan je er dus voor zorgen dat methodes die jij wil aanroepen op dat object ook echt bestaan en dus gedefinieerd en uitvoerbaar zijn.
Bijkomend voordeel is er ook nog vaak in je IDE. Je IDE weet nu van welk type de parameter is en kan dus juiste code completion weergeven.

Het werkt trouwens niet alleen voor klassen maar ook voor varaibale type. je zou dus af kunnen dwingen dat een parameter van het type "array" is door "function name(array $pParam )"

Zie voor meer informatie:
http://php.net/manual/en/language.oop5.typehinting.php
 
Ilyes Ahidar

Ilyes Ahidar

15/07/2010 18:00:54
Quote Anchor link
@Niels Kieviet:
Hoe oplettend maar je hebt wel gelijk :), heb het verbetert. En zoals ik al zei ben ik een [link=http://development.blog.markkazemier.nl/2009/06/introductie-oop-gastenboek-bouwen/]tutorial[/link] aan het lezen/volgen.

@M Ypma:
Ja, thats it :). Dat van array, string wist ik, maar wist niet dat het ook zo werkte als hier boven met een classe. Tnx voor de link!

Bedankt allebei voor jullie snelle reactie!
 
Jurgen Meijer

Jurgen Meijer

19/07/2010 12:55:28
Quote Anchor link
Ik zou zoiets doen;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php

class Guestbook{

public $posts = array();
public $limit = 20;

public function __construct(){

$this->getPosts($this->limit));

}


private function getPosts($limit){
//post query enzo.

foreach($posts AS $post){
$posts[] = new GuestbookPost($post));
}
}


public function AddPost(GuestbookPost $post){
//hier toevoegen.
}
}
Gewijzigd op 19/07/2010 12:57:47 door Jurgen Meijer
 
Joren de Wit

Joren de Wit

19/07/2010 14:10:26
Quote Anchor link
Vraag je af of je de limit wel op die plaats wilt implementeren. Dat is immers iets dat met de weergave van de posts te maken heeft en waarschijnlijk wil je binnen je Guestbook class alle posts tot je beschikking hebben. Van daaruit kun je dan bepalen hoe de weergaven zal zijn...
 
PHP erik

PHP erik

19/07/2010 18:49:25
Quote Anchor link
@Ilyes Ahidar: "Dat van array, string wist ik, maar wist niet dat het ook zo werkte als hier boven met een classe." --> Dit werkt dus niet bij strings (dit wordt wel verwacht voor PHP 6).
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.