Versio

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
  • Gesponsorde koppelingen