Functie fout?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Klaas

klaas

08/11/2006 13:39:00
Quote Anchor link
Function randomgen.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
function randomgen() {
mt_srand((double)microtime() * 1000000);
$nummer = mt_srand(0,2);
return $nummer;
}

?>



index.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
include "function_randomgen.php";

$keuze[] = "Bericht 1";
$keuze[] = "Bericht 2";
$keuze[] = "Bericht 3";

randomgen();
$bericht = $keuze[$nummer];

echo "$bericht";
?>


wat is hier verkeerd aan?, of is dit op deze manier gewoon niet mogelijk?
 
PHP hulp

PHP hulp

17/11/2024 17:23:00
 
Simon Blok

Simon Blok

08/11/2006 13:52:00
Quote Anchor link
het moet zijn: $bericht = $keuze[randomgen()] op regel 9. Ik kan niet goed uitleggen waarom dat zo is, misschien dat iemand anders dit beter kan.

EDIT: een functie geeft een waarde terug en niet een variabele
Gewijzigd op 01/01/1970 01:00:00 door Simon Blok
 
Martijn B

Martijn B

08/11/2006 14:22:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
$nummer
= randomgen();
$bericht = $keuze[$nummer];
?>


of

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
$bericht
= $keuze[randomgen()];
?>


Kan allemaal.

edit:

Misschien dat je in randomgen() nog een parameter kunt maken voor het maximale nummer.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 
Klaas

klaas

08/11/2006 14:42:00
Quote Anchor link
Ik had nog een vraag?
Hoe haal je bijvoorbeeld een waarde uit een variabel die in een functie staat naar het hoofdscript of buiten de functie?
 
Martijn B

Martijn B

08/11/2006 14:49:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
function blaat()
{

  $var = 423423;
  return $var;
}


// We hebben nu een kopie van $var uit de functie
$var = blaat();
?>


of meerdere variabelen

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
function blaat()
{

  $var1 = 423423;
  $var2 = 423423;
  return array($var1,$var2);
}


$verzameling = blaat();

// We hebben nu een kopie van $var1 en var2 uit de functie
$var1 = $verzameling[0];
$var2 = $verzameling[1];

// Wat ook kan is:
list($var1, $var2) = blaat();

?>



Het kan op nog veel meer manieren maar dit is het eenvoudigst.
Je hoeft dus bijvoorbeeld ook niet met kopieën te werken als je dat wilt.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 
Klaas

klaas

08/11/2006 15:31:00
Quote Anchor link
Het is gelukt, alleen nu ik alles in 1 functie wil zetten krijg weer problemen.
Alles lijkt inorde alleen krijg ik een leeg scherm bij het draaien van het script.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
//random generator
function random() {
mt_srand((double)microtime() * 1000000);
$nummer = mt_rand(0,4); //Willekeurig getal genereren tussen 0/4

//5 keuzes (0/4)

$keuze[] = "Engels";
$keuze[] = "Nederlands";
$keuze[] = "Frans";
$keuze[] = "Duits";
$keuze[] = "Spaans";

$bericht = $keuze[$nummer];
echo "De Taal: ".$bericht;
}

?>
Gewijzigd op 01/01/1970 01:00:00 door klaas
 
Martijn B

Martijn B

08/11/2006 15:50:00
Quote Anchor link
Je moet je functie nog even aanroepen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
random();
?>


edit:

Trouwens je kunt alles boven de functie mt_rand verwijderen, kijk maar eens bij de note, hier

regel 4 van je code is dus overbodig, als je PHP 4.2.0 of hoger hebt.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.