class en var
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 />';
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.
Gewijzigd op 24/10/2012 09:54:48 door Ivo Breeden
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
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;
}
}
?>
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?