Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Recursive function problem

Posted on 2006-11-19
4
Medium Priority
?
159 Views
Last Modified: 2006-11-19
function test($a) {
 if ($a > 10) {
  if ($a > 50) {
   test($a-10);
  }
  else {
   test($a-5);
  }
 }
 else {
  return $a;
 }
}

var_dump(test(100));

The above "example" function returns NULL.

Where am i going wrong?

Thank you in advance.
0
Comment
Question by:fox_km
  • 2
  • 2
4 Comments
 
LVL 49

Accepted Solution

by:
Roonaan earned 500 total points
ID: 17974180
Use:

function test($a) {
 if ($a > 10) {
  if ($a > 50) {
   return test($a-10);
  }
  else {
   return test($a-5);
  }
 }
 else {
  return $a;
 }
}

-r-
0
 

Author Comment

by:fox_km
ID: 17974221
Thank you.

Could you possibly explain why this works?

My logic was, you only want to return something if $a is less then 10. I'm assuming the extra returns serve the purpose of halting the execution of the current function call. I had assumed that it wouldn't matter, as those calls do not return anything, therefore the original function call would only have a value returned when $a <= 10. Is my understanding of recursive functions incorrect?
0
 
LVL 49

Expert Comment

by:Roonaan
ID: 17974232
Well you would either return it, or store the subfunctions call into a:

function test($a) {
 if ($a > 10) {
  if ($a > 50) {
   $a = test($a-10);
  }
  else {
   $a = test($a-5);
  }
 }
 return $a;
}

When you just call text($a - 10) and do nothing with its result, there is no sense in calling the function at all.

-r-
0
 

Author Comment

by:fox_km
ID: 17974242
Okay, i understand. Thanks again.
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Since pre-biblical times, humans have sought ways to keep secrets, and share the secrets selectively.  This article explores the ways PHP can be used to hide and encrypt information.
It’s a season to be thankful, and we’re thankful for users like you who engage on site, solve technology problems, and network with others in the industry. What tech are we most thankful for? Keep reading.
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …
Suggested Courses

926 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question