Dizzee15 Posted March 5, 2009 Share Posted March 5, 2009 Perhaps my question is stupid, but i'm new to php so here it is : $number = 5; function numbers($number2 = 5) { $answer = $number - $number2; echo $answer; } numbers(); It prints "-5", "$number" is 0, but I want "$number" to be 5 !! Why function doesn't read variable "$number", because it's outside the function ? Quote Link to comment Share on other sites More sharing options...
revraz Posted March 5, 2009 Share Posted March 5, 2009 Yes Why function doesn't read variable "$number", because it's outside the function ? Quote Link to comment Share on other sites More sharing options...
Dizzee15 Posted March 5, 2009 Author Share Posted March 5, 2009 Then the functions is useless for me . Anyway, here's another question : $number = 15; $number2 = 150; $numbers = array( "$number", "$number", "$number2" ); shuffle($numbers); $number3 = 50; if ($numbers[0] >= number3) { $result = $numbers[0] - $number3; } else { shuffle($numbers); //Do function again until $number >= number2. } How to make it do it again if $number < number2 until it will be $number >= number2? I hope you get what I mean. Quote Link to comment Share on other sites More sharing options...
jackpf Posted March 5, 2009 Share Posted March 5, 2009 In response to your first question, you have to set $number to look for it outside of the function. Do this- global $number; And in response to your second question- if($number < $number2) { numbers($number); } Quote Link to comment Share on other sites More sharing options...
Dizzee15 Posted March 5, 2009 Author Share Posted March 5, 2009 In response to your first question, you have to set $number to look for it outside of the function. Do this- global $number; And in response to your second question- if($number < $number2) { numbers($number); } WOW ! Thanks ! This information will be very usefull for me. I know i can always open php manual and read it, but it's hard to find what i need and i know the basics. BTW sorry for my poor english . Quote Link to comment Share on other sites More sharing options...
jackpf Posted March 5, 2009 Share Posted March 5, 2009 No problem And I didn't even notice your bad english Quote Link to comment Share on other sites More sharing options...
Dizzee15 Posted March 6, 2009 Author Share Posted March 6, 2009 Ohh ! I did a mistake in my second question, it should be like this : $number = 15; $number2 = 150; $numbers = array( "$number", "$number", "$number2" ); shuffle($numbers); $number3 = 50; if ($numbers[0] >= number3) { $result = $numbers[0] - $number3; } else { shuffle($numbers); //Do it again until $number[0] >= number3. } How it should be now ? ??? Quote Link to comment Share on other sites More sharing options...
kickstart Posted March 6, 2009 Share Posted March 6, 2009 Hi Put he shuffle inside a while loop $number = 15; $number2 = 150; $numbers = array( "$number", "$number", "$number2" ); shuffle($numbers); $number3 = 50; if ($numbers[0] >= number3) { $result = $numbers[0] - $number3; } else { while ($number[0] < $number3) { shuffle($numbers); } } All the best Keith Quote Link to comment Share on other sites More sharing options...
Dizzee15 Posted March 6, 2009 Author Share Posted March 6, 2009 Damn, look what I'm getting now ??? :'( "Fatal error: Maximum execution time of 15 seconds exceeded". Quote Link to comment Share on other sites More sharing options...
kickstart Posted March 6, 2009 Share Posted March 6, 2009 Hi Doh! My fault. Change the while to refer to the $numbers array. All the best Keith Quote Link to comment Share on other sites More sharing options...
Dizzee15 Posted March 6, 2009 Author Share Posted March 6, 2009 Here's another problem : $number = 15; $number2 = 150; $numbers = array( "$number", "$number2" ); shuffle($numbers); $number3 = 50; if ($numbers[0] >= $number3) { $result = $numbers[0] - $number3; echo "$result"; } else { while ($numbers[0] < $number3) { shuffle($numbers); } } It prints 100 if $numbers[0] is 150 first time, but if $numbers[0] is 15, then it don't print anything . Quote Link to comment Share on other sites More sharing options...
kickstart Posted March 6, 2009 Share Posted March 6, 2009 Hi As it stands there is nothing in there to print anything out if it does a shuffle. $number = 15; $number2 = 150; $numbers = array( "$number", "$number2" ); shuffle($numbers); $number3 = 50; if ($numbers[0] >= $number3) { $result = $numbers[0] - $number3; echo "$result"; } else { while ($numbers[0] < $number3) { shuffle($numbers); } $result = $numbers[0] - $number3; echo "$result"; } All the best Keith Quote Link to comment Share on other sites More sharing options...
Dizzee15 Posted March 6, 2009 Author Share Posted March 6, 2009 Thanks . Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.