Dingen om rekening mee te houden

Let op dat als een publieke waarde met dezelfde naam in het object gedefinieerd is, dat deze niet meer langs de overload-functies komt!
[voorbeeld 4]

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
<?php
class Voorbeeld4 extends Voorbeeld {
   public $waardeX = 'All your base are belong to us!';
  
   public function __construct()
   {

      //roep Voorbeeld::__construct() aan.
      parent::__construct();  
   }
}


$object = new Voorbeeld4();
echo $object->waardeX;
/*
 * waneer hij de overload-method zou pakken,
 * zou hij 'bestaat niet!' geven. Hij geeft
 * echter 'All your base are belong to us!',
 * en er zal ook geen debug-regeltje verschijnen.
 */

?>


Ook werkt overloading niet waneer je statisch de variabelen opvraagt. Later bij __call() zullen we zien dat dat ook hierbij het geval is.
[voorbeeld 5]
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
error_reporting(E_ALL);
echo Voorbeeld::$iets;
//dit zal een melding opleveren.
?>


Uiteraard werkt overloading ook niet intern in de klasse, anders zou bij __set() deze functie zichzelf altijd aanroepen, en zo in een lus terecht komen.

overload-methods moeten net als __construct & __destruct de vlaggen 'public' en niet 'static' meekrijgen.

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Het verschil
  2. __get()
  3. __set()
  4. __isset() & __unset()
  5. __call()
  6. Dingen om rekening mee te houden
  7. Mogelijke toepassing

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.