Static
Intro
Misschien is een 'compare' goed. Dus ziehier:
- Een gewone class variable wordt pas beschikbaar als je de class heb initiated
- Een static variable is zichtbaar, zelfs al is de class niet initiated. Maar met de object variable kan je een static var niet aanroepen, alleen met ons-rare-naam-tekentje " ::".
Praktijk
Wat ik boven heb neergezet, toen ik eigenlijk nu hieronderaan.
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
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
<?php
class IKKE {
public static $ikke = 'Jan';
public function staticwaarde() {
return self::$ikke;
}
}
class JIJ extends IKKE {
public function mijn_waarde() {
return parent::$ikke;
}
}
echo IKKE::$ikke;
newline();
$obj = new IKKE;
echo $obj->staticwaarde();
newline();
echo $obj->ikke;
newline(2);
echo JIJ::$ikke;
newline();
$obj2 = new JIJ;
echo $obj2->mijn_waarde();
newline();
echo $obj2->ikke;
?>
class IKKE {
public static $ikke = 'Jan';
public function staticwaarde() {
return self::$ikke;
}
}
class JIJ extends IKKE {
public function mijn_waarde() {
return parent::$ikke;
}
}
echo IKKE::$ikke;
newline();
$obj = new IKKE;
echo $obj->staticwaarde();
newline();
echo $obj->ikke;
newline(2);
echo JIJ::$ikke;
newline();
$obj2 = new JIJ;
echo $obj2->mijn_waarde();
newline();
echo $obj2->ikke;
?>
De output van het bovenstaande script:
Jan
Jan
<br />
<b>Notice</b>: Undefined property: IKKE::$ikke in <b>H:\Server\Apache2\htdocs\class\static.php</b> on line <b>46</b><br />
Jan
Jan
<br />
<b>Notice</b>: Undefined property: JIJ::$ikke in <b>H:\Server\Apache2\htdocs\class\static.php</b> on line <b>57</b><br />
Static methodes
Jawel, methodes kunnen ook static zijn.
Kijk maar:
Dit zal "Bluuub!" outputten.
Let op: Je kan geen non-static functies aanroepen met ::. Als je dat wel doet, gebeurt er niet veel, behalve dat je een gratis E_STRICT error krijgt.
« vorige pagina | volgende pagina »
Inhoudsopgave
- Inleiding
- Autoload
- Con- & Destructors
- Scope (::)
- Static
- Constants
- Type Hinting
- Final
- Object iteration
- Exceptions
- Abstract
- Conclusie/Einde