login  Naam:   Wachtwoord: 
Registreer je!
 Forum

function error

Offline Tuinstoel - 20/10/2004 16:27
Avatar van TuinstoelPHP expert Ik ben bezig met een script, en als je een functie aanroept met rank(100); wordt er iets verhoogd met 100, dat gebeurt automatisch bij de gebruiker. Maar nu wil ik het ook zo hebben dat ik rank(100,$gebruiker); kan doen, zonder dat ik alle rank(100) moet veranderen naar rank(100,$_SESSION['user']);

  1. <?
  2. function rank($aantal,$g = $_SESSION['user'])
  3. {
  4. // ....
  5. }
  6. ?>


Dat wat hierboven staat werkt niet :S Hoe moet ik dit nu doen?

9 antwoorden

Gesponsorde links
Offline Scott - 20/10/2004 16:30
Avatar van Scott Gouden medaille

PHP ver gevorderde
Dan verander je in die alle $g naar $_SESSION['user'], en bij het defineër van de functie zo:

function rank($aantal) {

Of bedoel je dat niet ?
Offline Tuinstoel - 20/10/2004 16:31
Avatar van Tuinstoel PHP expert Jeap, als er met rank($aantal) wordt aangeroepen dan moet $g automatisch $_SESSION['user'] zijn.
Offline Maarten - 20/10/2004 16:32
Avatar van Maarten Erelid Moet je dat dan niet binnen de functie zelf definieren of ben ik nu volledig verkeerd?

function rank($aantal,$g = $_SESSION['user'])
{
$user = $_SESSION['user'];
//... enzovoort
}
Offline xSc - 20/10/2004 16:33 (laatste wijziging 20/10/2004 16:34)
Avatar van xSc Onbekend Is dat niet als je $gebruiker een global maakt in je code? Dan kun je hem toch gebruiken in je functie?

Ik gok zoiets:

  1. <?php
  2. $GLOBALS['VarNaam'] = 'bla';
  3.  
  4. function rank($aantal) {
  5. $aantal += 100;
  6. echo $GLOBALS['VarNaam'] . ' heeft ' . $aantal . ' punten.';
  7. }
  8.  
  9. echo rank(50);
  10. ?>


Zoiets?
Offline Tuinstoel - 20/10/2004 16:33
Avatar van Tuinstoel PHP expert Nee want ik krijg een parse error op die lijn.
Offline Bertjuh - 20/10/2004 16:53 (laatste wijziging 20/10/2004 16:55)
Avatar van Bertjuh HTML interesse
  1. <?
  2. function rank($aantal)
  3. {
  4. $g = $_SESSION['user'];
  5. // ....
  6. }
  7. ?>


Declareer die $g binnen de functie, blijkbaar hoeft het geen global te zijn.

En als je function rank($aantal,$g = ...) doet, verwacht ie dat je bij de aanroep, als parameter voor $g iets mee geeft, terwijl je het in de functie zelf een waarde geeft
Offline twopeak - 20/10/2004 17:27
Avatar van twopeak Gouden medaille

PHP ver gevorderde
als je basisvraag was om een parameter van een zelfgemaakte functie niet verplicht te maken (dus gelijk dat je bij meerdere vaste functies niet alle variabelen moet invullen)
Dan gaat dit niet!
er bestaat wel ergens op de php.net site een workaround om ervoor te zorgen dat het wel kan, maar ik weet echt niet waar!
Offline Scott - 20/10/2004 19:38
Avatar van Scott Gouden medaille

PHP ver gevorderde
@ twopeak: Kan wel hoor.. Dan moet het zo:

  1. function naam($iets = false) {
  2.  
  3. //


De code van bertjuh werkt wel hoor, tuinstoel 
Offline Tuinstoel - 20/10/2004 20:36
Avatar van Tuinstoel PHP expert 't Zal wel, ik heb het inmiddels al opgelost. *klik*
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.22s