Ola,

Weet iemand wat het verschil is tussen een variabele en een parameter? Of is daar geen verschil tussen?

Stel ik heb een functie waarmee ik iets kan setten:

<?php

function set($key, $value) {
$this->data[$key] = value;
}

?>

De $key en $value kan van alles zijn, bijv. 'path' => '/home/library/' of 'cache_time' => 300. Hoe noem je zo'n key/value paar dan? Is dat een variabele of een parameter, of iets anders? Ik wil namelijk een functieomschrijving bij de set functie zetten, maar ik weet het juiste woord niet.

<?php

// Set a variable / parameter... ???
function set($key, $value) {
$this->data[$key] = value;
}

?>

Iemand een tip?
Met een parameter spreek je echt over de arguments in een function of method.

Een variable is dan weer gewoon een variable die je normaal aanmaakt als dit:

<?php $foo = 'bar'; ?>
Raoul, je hebt ozzie´s vraag verkeerd begrepen :)[edit]nee, ik heb jou antwoord verkeerd begrepen...[/edit]

Ozzie, deze dingen zijn parameters bij het declareren. Dus nu spreken we over een $key parameter en een $value parameter. Maar stel dat ik de set functie aanroep met 'foo' en 'lorem' dan spreken we over argumenten.
Ik raad je aan gewoon de PHPdoc te gebruiken bij het documenteren van je methods, lees ook de documentatie op http://phpdoc.org/

Als je het trouwens hebt over 'set something' dan gaat het niet om die $key en $value, maar om het geen waarin je ze zet. Is $this->data bijv. een array met services, dan zeg je 'Sets a service.'.
Wouter thanks:

Hier raak je de kern:

"Als je het trouwens hebt over 'set something' dan gaat het niet om die $key en $value, maar om het geen waarin je ze zet. Is $this->data bijv. een array met services, dan zeg je 'Sets a service.'."

Ik wil een soort algemene class maken waarin ik meerdere "dingen" kan opslaan. De ene keer gebruik ik die class om paden in op te slaan, de andere keer om routes in op te slaan enz. Zo hoef ik voor objecten die alleen maar data bevatten die ik moet kunnen GETTEN niet iedere keer een nieuwe class te maken (die in feite een kopie is van deze class).

Terugkomend op de omschrijving, hetgeen wat er geset wordt kan dus van alles zijn. Alleen "Set something" klinkt een beetje raar. Zou "Set a variable." wel kunnen, of misschien "Set a key/value pair."?
Toch nog even een vraagje...

De $_SERVER global bevat een aantal parameters??/variabelen?? zoals:

DOCUMENT_ROOT
HTTP_ACCEPT
REDIRECT_URL
REQUEST_METHOD
enzovoorts

Hoe noem je deze dingen nou? Zijn dat nou variabelen of parameters? Of misschien wel allebei??? :-s
De sever superglobal bevat een aantal elementen.
Of gewoon een array?
nee, de server superglobal is een array en een array bevat elementen (volgens de vaktermen van php.net).
Oké... maar is een parameter of variabele dan niet correct?

Stel ik wil weten wat de waarde is van REQUEST_METHOD.

Zeg je dan:

- ik wil weten wat de waarde is van de parameter REQUEST_METHOD?
- ik wil weten wat de waarde is van de variabele REQUEST_METHOD?
- ik wil weten wat de waarde is van het element REQUEST_METHOD?
Dan zou ik gewoon zeggen: Ik wil weten wat de waarde is van REQUEST_METHOD :p

Maar in de echte vakjargon:
<?php
$foo; // de variable foo

// de functie foo
// de parameter $bar
function foo($bar) {
}

// het argument 'baz'
foo('baz');

$foo = array(
// het array element foo
// de key 'foo'
// de value 'bar'
'foo' => 'bar',
);

// pushed een element in de array met
// de value 'bar'
array_push($foo, 'bar');
?>
Thanks Wouter, ik voeg zelf een aantal "elementen" toe aan de server array, bijvoorbeeld domain third, second en top lever. Dan zou ik bij de functieomschrijving dus moeten zetten "Set extra server elements." Klinkt alleen ietwat vreemd in de oren om "elements" te setten... Gevoelsmatig klinkt parameters eigenlijk beter... maar dat klopt dus niet. Pff, lastig...

Reageren