In C++ kun je (volgens mij, ik ben er niet zo bedreven in) een functie maken die oneindig veel argumenten kan slikken door iets te typen als:
<?php
public string Functie(string[] args)
{
...
}
?>

De argumenten zjin van het type string en worden in een array opgeslagen. Nu vraag ik me af of dat ook in php kan, zonder eerst de argumenten in een array te zetten en die aan de functie te geven zoals in het volgende voorbeeld.
<?php 
function Functie($args){ ... }
$args = array('string1', 'string2', 'string3');
Functie($args);
?>
Als je een argument wilt toevoegen dan zul je toch al aan de functie moeten sleutelen. Zoals je in het volgende voorbeeld ziet...
<?php
  function implode_str($glue) {
    $string = "";

    for($i = 1; $i < func_num_args(); $i++) {
      $string .= $glue;
      $string .= func_get_arg($i);
    }
			
    return $string;

  }
	
  echo implode_str('-', 'This', 'is', 'a', 'test');
?>

... is het slechts een kwestie van in de regel...
<?php
for($i = 1; $i < func_num_args(); $i++) {
?>

... $i = 1; veranderen in $i = 2 en voila je hebt weer plek voor nog een parameter. Of je deze functies gebruikt is een kwestie van persoonlijke voorkeur.
Omdat je een argument in PHP een standaard waarde kan geven is het erg makkelijk een argument aan het einde toe te voegen. Op die manier hoe je niet overal in je code waar je die functie gebruikt te gaan wijzigen.
Ah zo bedoel je, ik vatte hem even niet :). Tja dan heb je inderdaad niks aan deze methode. Overigens, dat voorbeeld van die emails was even snel uit de lucht gegrepen.

Reageren