class en var
Hallo allemaal,
Ik ben bezig met OOP en ik snap bv niet waarom de naam niet wordt geechood
Ik ben bezig met OOP en ik snap bv niet waarom de naam niet wordt geechood
Code (php)
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Persoon
{
private $naam;
private $leeftijd = 36;
private $plaats = 'Haarlem';
function printNaam($naam){
return $this->naam;
}
function printLeeftijd(){
return $this->leeftijd;
}
function printPlaats(){
return $this->plaats;
}
}
$oPersoon = new Persoon();
echo $oPersoon->printNaam('Bas') , '<br />';
echo $oPersoon->printLeeftijd() , '<br />';
echo $oPersoon->printPlaats() , '<br />';
{
private $naam;
private $leeftijd = 36;
private $plaats = 'Haarlem';
function printNaam($naam){
return $this->naam;
}
function printLeeftijd(){
return $this->leeftijd;
}
function printPlaats(){
return $this->plaats;
}
}
$oPersoon = new Persoon();
echo $oPersoon->printNaam('Bas') , '<br />';
echo $oPersoon->printLeeftijd() , '<br />';
echo $oPersoon->printPlaats() , '<br />';
Dit komt omdat je de waarde die je meestuurd in de functie printNaam niet word opgeslagen in de variabele $naam. Voeg dit toe aan je functie:
Het vorige dat ik had gepost was niet goed.
Het vorige dat ik had gepost was niet goed.
Gewijzigd op 24/10/2012 09:48:26 door Rick van Riel
@Rick
Die heb ik aanstaan maar geeft geen error en als ik hem op public zet werkt het ook niet, althans ik krijg geen foutmelding
Toevoeging op 24/10/2012 09:51:22:
Ahh nu begin ik het te snappen ;-)
Hij werkt, thanks!
Die heb ik aanstaan maar geeft geen error en als ik hem op public zet werkt het ook niet, althans ik krijg geen foutmelding
Toevoeging op 24/10/2012 09:51:22:
Ahh nu begin ik het te snappen ;-)
Hij werkt, thanks!
Ik had het verkeerde gepost sorry. Heb het aangepast omdat ik iets te snel kwam met mijn antwoord.
laat maar, bericht is veranderd.
Gewijzigd op 24/10/2012 09:54:48 door Ivo Breeden
Je vraag je af waarom 'Bas' niet op je scherm verschijnt.
Dat is omdat je niets doet met de parameter $naam.
function printNaam($naam){
Binnen die functie is $naam gelijk aan Bas (in jouw voorbeeld).
Als je wil dat die naam wordt doorgegeven aan het object, moet je zoiets doen
(edit: toegevoegd toen er nog geen berichten onder dit bericht stond)
Trouwens ... Je doet de echo buiten de class. Dus de functie printNaam() doet niet echt wat de naam doet vermoeden.
Functies die een waarde toewijzen aan een object, noemen we meestal Setters.
Functies die een waarde van een object teruggeven naar buiten, noemen we meestal Getters.
Dus het is gebruikelijk om deze functies
setNaam en getNaam te noemen
Dat is omdat je niets doet met de parameter $naam.
function printNaam($naam){
Binnen die functie is $naam gelijk aan Bas (in jouw voorbeeld).
Als je wil dat die naam wordt doorgegeven aan het object, moet je zoiets doen
Code (php)
(edit: toegevoegd toen er nog geen berichten onder dit bericht stond)
Trouwens ... Je doet de echo buiten de class. Dus de functie printNaam() doet niet echt wat de naam doet vermoeden.
Functies die een waarde toewijzen aan een object, noemen we meestal Setters.
Functies die een waarde van een object teruggeven naar buiten, noemen we meestal Getters.
Dus het is gebruikelijk om deze functies
setNaam en getNaam te noemen
Gewijzigd op 24/10/2012 10:02:35 door Kris Peeters
Merk wel op dat het vanuit een OO inzicht beter is een setter en een getter te maken en deze niet te combineren in 1 method:
Code (php)
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
class Person
{
private $name;
private $age;
private $city;
public function __construct($name = '', $age = 0, $city = '')
{
$this->setName($name);
$this->setAGe($age);
$this->setCity($city);
}
public function setName($name)
{
$this->name = (string) $name;
}
public function setAge($age)
{
$this->age = (int) $age;
}
public function setCity($city)
{
$this->city = (string) $city;
}
public function getName()
{
return $this->name;
}
public function getAge()
{
return $this->age;
}
public function getCity()
{
return $this->city;
}
}
?>
class Person
{
private $name;
private $age;
private $city;
public function __construct($name = '', $age = 0, $city = '')
{
$this->setName($name);
$this->setAGe($age);
$this->setCity($city);
}
public function setName($name)
{
$this->name = (string) $name;
}
public function setAge($age)
{
$this->age = (int) $age;
}
public function setCity($city)
{
$this->city = (string) $city;
}
public function getName()
{
return $this->name;
}
public function getAge()
{
return $this->age;
}
public function getCity()
{
return $this->city;
}
}
?>
Genoeg huiswerk ;-)
Bedankt voor jullie reacties!
Toevoeging op 24/10/2012 13:46:14:
@Wouter, stomme of beginners vraag, maar waarom set en get?
Toevoeging op 25/10/2012 06:30:24:
@Kris
Waarom private $naam; ?
De wordt toch al gezet buiten de class, dan is ie toch overbodig?
Of moet je variabelen altijd noemen?
Bedankt voor jullie reacties!
Toevoeging op 24/10/2012 13:46:14:
@Wouter, stomme of beginners vraag, maar waarom set en get?
Toevoeging op 25/10/2012 06:30:24:
@Kris
Waarom private $naam; ?
De wordt toch al gezet buiten de class, dan is ie toch overbodig?
Of moet je variabelen altijd noemen?




