PHP ver gevorderde |
|
Beste mensen,
Ik ben een functie aan het schrijven om een willekeurige rekensom te genereren.
De som (bijv. 1+1) met het bijbehorende antwoord (2 dus) zet ik dan in een array en return ik.
Het eerste getal wordt willekeurig bepaald en de operator wordt ook willekeurig gekozen ('*' of '+').
Nu kom ik met het probleem dat ik het antwoord wil uitrekenen, maar omdat de operator als 'string' wordt gezien kan ik het niet zomaar uitrekenen.
Ik heb al naar verschillende dingen gekeken (en geprobeerd), als (int), settype() en vanalles.
De functie nu (er staat nu dus niets speciaals meer bij $iAnswer):
function createCaptcha() {
$aOperators = array('+', '*');
$iRandOp = rand(0, count($aOperators)-1);
$sRandOp = $aOperators[$iRandOp];
$iRand1 = ceil(rand(1,3));
$iRand2 = ceil(rand(1,3));
$iAnswer = $iRand1.$sRandOp.$iRand2;
$sQuest = $iRand1.$sRandOp.$iRand2;
$aRet = array($sQuest, $iAnswer);
return $aRet;
}
function createCaptcha() { $aOperators = array('+', '*'); $sRandOp = $aOperators[$iRandOp]; $iAnswer = $iRand1.$sRandOp.$iRand2; $sQuest = $iRand1.$sRandOp.$iRand2; $aRet = array($sQuest, $iAnswer); return $aRet; }
$sQuest klopt nu dus, maar het antwoord daarvan wil ik opslaan in $iAnswer.
|