Wat is Parent

Een parent in OOP is een begrip en tevens een Scope resolution operator.

Als begrip wil men hiermee zeggen dat een Class een extends is naar een andere
class waarmee we dus een relatie leggen tussen twee of meerdere classes.


Voorbeeld #1:

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
<?php
class File_General
{
    // Function to check if a file exists's.
    function Check_If_Exist($p_sFilePath='',$p_sFileName='')
    {

        // Normaly you dont use output to display information inside
        // a class, its just here to show you the results if you try
        // running this example for yourself.

        echo 'Folder: '.$p_sFilePath.' File: '.$p_sFileName.'<br />';
    }
}


Class File_Pictures extends File_General
{
    // Function to check if the file is indeed a picture.
    function Check_If_Picture($p_sFilePath,$p_sFileName)
    {

        // not implemented.
    }
}

?>



Vanwege de extends geven we aan dat de Class File_Pictures zich moet gedragen
als child (lees: kind van) waardoor de Class File_General de parent is van
de Class File_Pictures




Tevens heeft Parent ook nog een andere betekenis en dit als methode
(lees: functie) in de class zelf als een Scope resolution operator:

Voorbeeld #2:

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
26
27
28
29
30
31
<?php
class File_General
{
    // Function to check if a file exists's.
    function Check_If_Exist($p_sFilePath='',$p_sFileName='')
    {

        // Normaly you dont use output to display information inside
        // a class, its just here to show you the results if you try
        // running this example for yourself.

        echo 'Folder: '.$p_sFilePath.' File: '.$p_sFileName.'<br />';
    }
}


Class File_Pictures extends File_General
{
    // Function to check if the file is indeed a picture.
    function Check_If_Picture($p_sFilePath,$p_sFileName)
    {

        // (if picture then
            parent::Check_If_Exist($p_sFilePath,$p_sFileName);
        // endif)
    }
}


// Creating an instance of the File_Pictures class.
$my_picture_file = new File_Pictures();

// Using a function of the File_Pictures class
$my_picture_file->Check_If_Picture('Map','foto.jpg');

?>



Zoals je ziet staat in de Class File_Pictures een functie genaamd Check_If_Picture() welke dus weer een andere functie aanroept parent::Check_If_Exist() die zich bevindt in de Class File_General.

Met parent:: geef je dus aan dat je een functie wilt aanspreken die in de extends (lees: verlenging) ligt van de Class waarvan je een functie wilt aanroepen.




Je zult ook merken dat $this->Check_If_Exist() ook wel werkt maar daar geef je niet direkt mee aan dat je perse een functie aanspreekt in de verlenging van de Class maar in de gehele keten van beide Classes en dan de eerste die dan wordt gevonden zal aanspreken.

Voorbeeld #3: Zo gaat het fout
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
class File_General
{

    // Function to check if a file exists's.
    function Check_If_Exist($p_sFilePath='',$p_sFileName='')
    {

        // Normaly you dont use output to display information inside
        // a class, its just here to show you the results if you try
        // running this example for yourself.

        echo 'Folder: '.$p_sFilePath.' File: '.$p_sFileName.'<br />';
    }
}


Class File_Pictures extends File_General
{
    function
Check_If_Exist($p_sFilePath='',$p_sFileName='')
    {

        // Normaly you dont use output to display information inside
        // a class, its just here to show you the results if you try
        // running this example for yourself.

        echo 'I seem to made a mistake';
    }


    
    // Function to check if the file is indeed a picture.
    function Check_If_Picture($p_sFilePath,$p_sFileName)
    {

        // (if picture then
            $this->Check_If_Exist($p_sFilePath,$p_sFileName);
        // endif)
    }
}


// Creating an instance of the File_Pictures class.
$my_picture_file = new File_Pictures();

// Using a function of the File_Pictures class
$my_picture_file->Check_If_Picture('Map','foto.jpg');

?>


Zoals je ziet hebben beiden Classes een zelfde functie Check_If_Picture() maar beiden met een heel ander resultaat waarbij je met de $this methode uitkomt op de functie binnen de Class zelf.

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Inleiding
  2. Wat is Classification
  3. Wat is een Instantiation
  4. Wat is Inheritance
  5. Wat is Parent
  6. Wat is $this
  7. Wat is Self
  8. Wat is een Constructor
  9. Wat is een Scope resolution operator

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.