__set()
__set() is bijna hetzelfde verhaal, maar dan anders. __set($key, $value) heeft twee argumenten, een naam van de variabele en de waarde die deze moet krijgen. Ik denk dat een voorbeeld de rest wel verteld.
[voorbeeld 2]
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
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
<?php
//we breiden ons vorige voorbeeld even uit
class Voorbeeld2 extends Voorbeeld {
public function __construct()
{
//roep Voorbeeld::__construct() aan.
parent::__construct();
}
public function __set($key, $value)
{
echo "debug: variabele '$key' wordt overschreven met waarde '$value'\n";
// is de variabele al eens eerder geset?
if(isset($this->waarden[$key])) {
$this->waarden[$key] .= $value; //voeg dan de waarde toe
} else {
$this->waarden[$key] = $value; //maak een entry in de array
}
}
}
$object = new Voorbeeld2();
echo $object->nieuweWaarde; //geeft 'bestaat niet!';
$object->nieuweWaarde = 'Hello';
echo $object->nieuweWaarde; //geeft 'Hello';
$object->nieuweWaarde = ' World';
echo $object->nieuweWaarde; //geeft 'Hello World';
?>
//we breiden ons vorige voorbeeld even uit
class Voorbeeld2 extends Voorbeeld {
public function __construct()
{
//roep Voorbeeld::__construct() aan.
parent::__construct();
}
public function __set($key, $value)
{
echo "debug: variabele '$key' wordt overschreven met waarde '$value'\n";
// is de variabele al eens eerder geset?
if(isset($this->waarden[$key])) {
$this->waarden[$key] .= $value; //voeg dan de waarde toe
} else {
$this->waarden[$key] = $value; //maak een entry in de array
}
}
}
$object = new Voorbeeld2();
echo $object->nieuweWaarde; //geeft 'bestaat niet!';
$object->nieuweWaarde = 'Hello';
echo $object->nieuweWaarde; //geeft 'Hello';
$object->nieuweWaarde = ' World';
echo $object->nieuweWaarde; //geeft 'Hello World';
?>
« vorige pagina | volgende pagina »
Inhoudsopgave
- Het verschil
- __get()
- __set()
- __isset() & __unset()
- __call()
- Dingen om rekening mee te houden
- Mogelijke toepassing