Versio

__call()

__call() is in feite hetzelfde als __get(), maar dan voor het aanroepen van functies. __call($methodName, $arguments) krijgt 2 argumenten mee. De naam van de method die je aanroept, en een array met argumenten die je bij je aanroep hebt meegegeven. De uitvoer van de functie geef je terug via return.
[voorbeeld 6]

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
<?php
class Voorbeeld6 {
   public function __call($methodName, $arguments)
   {

      echo "Ik vraag $method aan met deze argumenten:";
      print_r($arguments);
      return 'Ik ben nep!';
   }

  
   public function ikBestaWel()
   {

      return 'Zie je wel!';
   }
}


$object = new Voorbeeld6();
echo $object->blablaNepMethod('schaap', 'boer', 'pinuing');
/*
 * geeft 'Ik vraag blablaNepMethod aan met deze argumenten:
 * Array (
 *   [0] => 'schaap',  
 *   [1] => 'boer',
 *   [2] => 'pinuing'
 * )
 * Ik ben nep (return-waarde immers)
 */


echo $object->ikBestaWel();
/*
 * zal 'zie je wel!' geven, en geen 'Ik vraag ...', het is een
 * public functie dus zal niet langs __call() gaan.
 */


Voorbeeld6::blablaNepMethod('iets');
/*
 * zal een error opleveren, want static wordt overloading niet gebruikt.
 * Meer hierover op de volgende pagina.
 */

?>

« 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
Get Adobe Flash player