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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php

class TH {
    public function print_name(Persoon $persoon) {
        echo $persoon->naam;
    }


    public function test_array(array $arr) {
        print_r($arr);
    }
}


class Persoon {
    public $naam;
    public $leeftijd;
    //etc...
}
?>


Het onderstaande zal allemaal werken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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);
?>


Het onderstaande zal juist niet werken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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);
?>


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.

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Inleiding
  2. Autoload
  3. Con- & Destructors
  4. Scope (::)
  5. Static
  6. Constants
  7. Type Hinting
  8. Final
  9. Object iteration
  10. Exceptions
  11. Abstract
  12. Conclusie/Einde

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.