__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

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.