Type Hinting
Intro
Nu gaan we met Type Hinting echt in de richting van talen zoals C++, want Type Hinting is niks anders dan vertellen aan een functie welke input hij mag accepteren.
Praktijk
Code (php)
Het onderstaande zal allemaal werken:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$type = new TH;
$pers = new Persoon;
$X = new Persoon;
$pers->naam = "Pieter";
$X->naam = "Mr. X";
$array = array('Salpeterzuur' , 'Zwavelzuur', 'Zoutzuur' );
//werkt: een object van Persoon in input van de functie
$type->print_name($pers);
//werkt: een object van persoon in input
$type->print_name($X);
//werkt: een array is input
$type->test_array($array);
?>
$type = new TH;
$pers = new Persoon;
$X = new Persoon;
$pers->naam = "Pieter";
$X->naam = "Mr. X";
$array = array('Salpeterzuur' , 'Zwavelzuur', 'Zoutzuur' );
//werkt: een object van Persoon in input van de functie
$type->print_name($pers);
//werkt: een object van persoon in input
$type->print_name($X);
//werkt: een array is input
$type->test_array($array);
?>
Het onderstaande zal juist niet werken:
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
<?php
class Dier {
public $naam;
public $soort; //type klinkt anders zo 'voorwerpig' ;)
//etc...
}
$dier = new Dier;
$dier->naam = "Fifi";
$dier->soort = "Bulldog";
$type = new TH;
$pers = new pers;
$pers->naam = " Pieter";
$array = " Geen array ";
//werkt niet, string in input en daarom een Fatal Error
$type->print_name($array);
//werkt niet, geen object van de Persoon klasse in input, E_FATAL
$type->print_name($dier);
//werkt niet, geen array in input: E_FATAL
$type->test_array($array);
?>
class Dier {
public $naam;
public $soort; //type klinkt anders zo 'voorwerpig' ;)
//etc...
}
$dier = new Dier;
$dier->naam = "Fifi";
$dier->soort = "Bulldog";
$type = new TH;
$pers = new pers;
$pers->naam = " Pieter";
$array = " Geen array ";
//werkt niet, string in input en daarom een Fatal Error
$type->print_name($array);
//werkt niet, geen object van de Persoon klasse in input, E_FATAL
$type->print_name($dier);
//werkt niet, geen array in input: E_FATAL
$type->test_array($array);
?>
Dit kan natuurlijk handig zijn.
Note: Ik krijg toch steeds unexpeted T_ARRAY, zelfs met het voorbeeld gekopieerd van php.net en ik heb toch Php 5
Dus kijk niet gek op als je een parse_error krijgt.
« vorige pagina | volgende pagina »
Inhoudsopgave
- Inleiding
- Autoload
- Con- & Destructors
- Scope (::)
- Static
- Constants
- Type Hinting
- Final
- Object iteration
- Exceptions
- Abstract
- Conclusie/Einde