login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Functies meerdere parameters via array (Opgelost)

Offline Daiben - 18/08/2010 15:58 (laatste wijziging 18/08/2010 16:01)
Avatar van DaibenLid Beste Sitemasters,

Ik heb een vraag over functies in php.

Stel ik heb een function genaamd test

  1. function test($een, $twee, $drie){}

en ik roep hem aan via
  1. test(extract($array));


in de array zitten 3 keys met 3 values genaamd een twee en drie normaal gesproken doet een extract van de key een variable maken is dit ook mogelijk in functies? of is het mogelijk op een of andere manier?

3 antwoorden

Gesponsorde links
Offline avdg - 18/08/2010 16:16 (laatste wijziging 18/08/2010 16:18)
Avatar van avdg PHP gevorderde Je kan je functie veranderen om meerdere type parameters op te kunnen en heb je ook mogelijkheden om een parameter optioneel te maken en een default value mee te geven indien deze niet ingesteld is (vaak null). Dit ziet er dan uit als volg:

  1. function test ($een, $twee = 2, $drie = 3) {
  2. }


Hier ben ik verplicht om 1 parameter door te geven, maar parameters 2 en 3 zijn optioneel. Indien ze niet opgegeven zijn, nemen ze gewoon de standaardwaarden die je ziet achter het "=" teken. Let op dat je optionele parameters steeds achteraan moet plaatsen om problemen te vermijden.

In extreme gevallen kan je ook gewoon dit doen

  1. function test() {
  2. }


En kan je gegevens over de parameters opvangen via PHP.net: func_get_arg, PHP.net: func_get_args en PHP.net: func_num_args. Klik op de links voor de nodige documentatie.

Indien je van plan ben een functie aan te roepen op een meer flexibelere manier heb je nog steeds de functies PHP.net: call_user_func en PHP.net: call_user_func_array. Bij het eerste geef je de functienaam op als eerste parameter, gevolgd door de parameters. De tweede werkt identiek hetzelfde, alleen moet je je parameters doorgeven als array.

Ik hoop dat deze informatie nuttig was 
Offline Martijn - 18/08/2010 17:32
Avatar van Martijn Crew PHP je 'extreme' geval gaat niet werken als $een geen standaard waarde heeft ;)

Maar waarom zo moeilijk? Je kunt ook gewoon een array in je functie gooien hoor

  1. function voorbeeld ($array){
  2. return '<pre>'.print_r($array).'</pre>';
  3. }
  4.  
  5. echo voorbeeld ($eenGevuldeArray);
Offline Daiben - 18/08/2010 17:53 (laatste wijziging 18/08/2010 18:03)
Avatar van Daiben Lid ja martijn dit snap ik maar is het ook mogelijk om bijvoorbeeld een array erin te pleuren in een of ander functie en dat ik dan in de functie function ($var1, var2, var3 enz kan doen?)

call_user_func_array moest ik hebben
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.21s