Function randomgen.php

<?php
function randomgen() {
mt_srand((double)microtime() * 1000000);
$nummer = mt_srand(0,2);
return $nummer;
}
?>


index.php
<?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?
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
<?
$nummer = randomgen();
$bericht = $keuze[$nummer];
?>

of

<?
$bericht = $keuze[randomgen()];
?>

Kan allemaal.

edit:

Misschien dat je in randomgen() nog een parameter kunt maken voor het maximale nummer.
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?

<?php
function blaat()
{
$var = 423423;
return $var;
}

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

of meerdere variabelen

<?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.
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.

<?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;
}
?>
Je moet je functie nog even aanroepen.
<?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.

Reageren