Jump to content

[SOLVED] Function problem


Dizzee15

Recommended Posts

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 ?

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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);
}

Link to comment
Share on other sites

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 :(.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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 :(.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.