Public, protected, private

Public
Public is niets anders als publiek. Een public variable
kan je overal en altijd zien in een class.
Als je van een class variable of functie niet defineerd of hij public etc. is,
dan wordt ie als public beschouwd.

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 mijn_public {
    public $vari = 'Hallow';

    public function printvari() {
        echo $this->vari;
        newline(1);
    }


    public function printhallo() {
        $this->printvari();
    }
}


$obj = new mijn_public;
$obj->printvari();
$obj->printhallo();
?>

Dit zal werken zoals verwacht en zal
Hallow
Hallow
printen.

Private
Private variablen en functies kan je niet buiten de class gebruiken. Alleen in de class zelf, of in de class die de huidige extends.
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 mijn_public {
    private $vari = 'Hallow';

    private function printvari() {
        echo $this->vari;
        newline(1);
    }


    public function printhallo() {
        $this->printvari();
    }
}


$obj = new mijn_public;
//$obj->printvari(); //zal niet werken: Fatal error:  Call to private method mijn_public::printvari() from context '' in H:\Server\Apache2\htdocs\class\class.php on line 42
$obj->printhallo(); //dit werkt zoals verwacht en zal "Hallow" printen
?>


Protected
Protected is eigenlijk de meest "egoistische" vorm. Protected variablen en functies kunnen alleen gebruikt worden de class die ze gedefineerd heeft.

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 mijn_public {
    protected $vari = 'Hallow';

    protected function printvari() {
        echo $this->vari;
        newline(1);
    }


    public function printhallo() {
        $this->printvari();
    }
}


class mijn_tweede {
    protected $var2 = 'XXXX';

    protected function tsja() {
        //$this->printvari(); //zal niet werken en resulteren in een fatal error
    }
}

?>


Extending
Bedenk wel dat dit altijd nog mogelijk is. Ondanks je protected ofzoiets hebt gegeven. Dus wil je dat niet, gebruik dan het Final keyword!

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Voorwoord
  2. Syntax
  3. Public, protected, private

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.