__isset() & __unset()
Ik neem aan dat dit gedeelte wel redelijk voor zichzelf spreekt. __isset() is als het ware een 'wrapper' voor isset() en __unset() voor unset().
[voorbeeld 3]
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
class Voorbeeld3 extends Voorbeeld2 {
public function __construct()
{
//roep Voorbeeld2::__construct() aan.
parent::__construct();
}
public function __isset($key) {
echo "debug: kijken of '$key' wel geset is\n";
return isset($this->waarden[$key]);
}
public function __unset($key) {
echo "debug: vernietigen van '$key'\n";
unset($this->waarden[$key]);
}
}
$object = new Voorbeeld3();
echo isset($object->iets) ? 'is geset' : 'is niet geset';
//geeft 'is geset', immers in Voorbeeld::__construct()
$object->iets = ' anders';
echo $object->iets;
//geeft 'iets anders', immers door Voorbeeld2::__set() is ' anders' toegevoegd.
unset($object->iets);
echo $object->iets;
//geeft 'bestaat niet!'
?>
class Voorbeeld3 extends Voorbeeld2 {
public function __construct()
{
//roep Voorbeeld2::__construct() aan.
parent::__construct();
}
public function __isset($key) {
echo "debug: kijken of '$key' wel geset is\n";
return isset($this->waarden[$key]);
}
public function __unset($key) {
echo "debug: vernietigen van '$key'\n";
unset($this->waarden[$key]);
}
}
$object = new Voorbeeld3();
echo isset($object->iets) ? 'is geset' : 'is niet geset';
//geeft 'is geset', immers in Voorbeeld::__construct()
$object->iets = ' anders';
echo $object->iets;
//geeft 'iets anders', immers door Voorbeeld2::__set() is ' anders' toegevoegd.
unset($object->iets);
echo $object->iets;
//geeft 'bestaat niet!'
?>
« vorige pagina | volgende pagina »
Inhoudsopgave
- Het verschil
- __get()
- __set()
- __isset() & __unset()
- __call()
- Dingen om rekening mee te houden
- Mogelijke toepassing