[PHP] Returnen variabele uit functie lutk niet

Pagina: 1
Acties:
  • 42 views sinds 30-01-2008

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
Ik zit letterlijk al uren te klooien op de volgende functie. Ik probeer OOP in php een beetje onder de knie te krijgen, theorie snap ik voor het grootste gedeelte dus nu is het klooien. Het onderste wil maar niet werken... Als ik de while lus in de functie zelf zet dan werkt het wel, maar zodra ik de variabele 'uitkomst' buiten de functie probeer uit te lezen lukt het niet. Iemand een idee?


PHP:
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
<?php

function database($host, $username, $password, $database, $sql)
{
    mysql_connect($host,$username,$password);
    mysql_select_db($database);
    $uitkomst = mysql_query($sql);
    return $uitkomst;
}

$host = "localhost";
$username = "root";
$password = "*******";
$database = "bla";
$query = "SELECT * from verjaardagen";

database($host,$username,$password,$database,$query);

while ($row = mysql_fetch_array($uitkomst))
{
    echo $row['naam'];
}


?>

[ Voor 6% gewijzigd door Y0ur1 op 13-05-2004 23:32 ]


  • phYzar
  • Registratie: November 2001
  • Laatst online: 16:58
regel 17:
$uitkomst = database($host,$username,$password,$database,$query);

  • Brons
  • Registratie: April 2002
  • Laatst online: 10:59

Brons

Fail!

Ik ben dan wel niet zo'n held maar probeer eens:
PHP:
1
$uitkomst = database($host,$username,$password,$database,$query);

  • flipm0
  • Registratie: September 2000
  • Laatst online: 14-11-2025
Ze te zien is de variabele $uitkomst een lokale variabele, dat wil zeggen dat je hem alleen in de functie zelf mag gebruiken. Je zal dus iets moeten doen als

code:
1
$result = database($host,$username,$password,$database,$query);

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
flipm0 schreef op 13 mei 2004 @ 23:37:
Ze te zien is de variabele $uitkomst een lokale variabele, dat wil zeggen dat je hem alleen in de functie zelf mag gebruiken. Je zal dus iets moeten doen als

code:
1
$result = database($host,$username,$password,$database,$query);
Maar ik dacht dat je hem met 'return' ook buiten de functie kunt gebruiken.

  • phYzar
  • Registratie: November 2001
  • Laatst online: 16:58
Y0ur1 schreef op 13 mei 2004 @ 23:38:
[...]


Maar ik dacht dat je hem met 'return' ook buiten de functie kunt gebruiken.
Je roept je functie aan. Met een return geeft deze een waarde terug. Die waarde kun je gebruiken wanneer je hem in een variabele zet, zoals bovenstaande berichten laten zien. Wanneer je hem overal wilt gebruiken zonder dit alles zul je hem global moeten maken (en dat is vies :P )

  • Quibus
  • Registratie: November 2000
  • Laatst online: 21-05 08:58
Y0ur1 schreef op 13 mei 2004 @ 23:38:
[...]


Maar ik dacht dat je hem met 'return' ook buiten de functie kunt gebruiken.
Dat klopt. Maar dan moet je hem nog steeds gaan gebruiken. Je roept de functie database() aan. Daar komt een waarde aan. Maar deze waarde wijs je nergens aan toen. Daardoor krijg je geen result. Door te typen:
$result = database(bla,bla..) geef je de waarde door aan een variable en kun je er mee gaan werken.

[edit] te langsaam :P

[ Voor 4% gewijzigd door Quibus op 13-05-2004 23:43 ]


  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
Mijn dank is groot! Dat met global werkt ook... maar waarom is dat 'vies'?

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:56

.oisyn

Moderator Devschuur®

Demotivational Speaker

Anders lees je de php manual even door

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1

Dit topic is gesloten.