Return values in PHP - Time & Space Complexity
Let's see how the time it takes to run code changes when we use return values in PHP functions.
We want to know how the number of steps grows as the input changes.
Analyze the time complexity of the following code snippet.
<?php
function sumArray(array $numbers) {
$total = 0;
foreach ($numbers as $num) {
$total += $num;
}
return $total;
}
$values = [1, 2, 3, 4, 5];
echo sumArray($values);
?>
This code adds all numbers in an array and returns the total sum.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Looping through each number in the array.
- How many times: Once for every item in the input array.
As the array gets bigger, the function does more additions, one for each number.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 additions |
| 100 | 100 additions |
| 1000 | 1000 additions |
Pattern observation: The work grows directly with the number of items.
Time Complexity: O(n)
This means the time to finish grows in a straight line with the input size.
[X] Wrong: "Return statements make the function run faster or slower depending on the value returned."
[OK] Correct: The return just sends back the result; it does not add extra loops or steps that change how long the function takes overall.
Understanding how return values fit into time complexity helps you explain your code clearly and shows you know what parts affect speed.
"What if the function returned the sum of only the first half of the array? How would the time complexity change?"
Practice
return statement do inside a PHP function?Solution
Step 1: Understand the purpose of
Thereturnreturnstatement sends a value back to the place where the function was called.Step 2: Differentiate from other actions
It does not print or stop the whole script; it only ends the function and sends back a value.Final Answer:
It sends a value back to where the function was called. -> Option DQuick Check:
Return sends value back [OK]
- Thinking return prints output
- Confusing return with exit or die
- Assuming return declares variables
Solution
Step 1: Recall PHP return syntax
The correct syntax uses the keywordreturnfollowed by the value and a semicolon:return 10;Step 2: Identify syntax errors in other options
A uses invalid assignment; return(10) misses semicolon; D uses colon incorrectly.Final Answer:
return 10; -> Option AQuick Check:
Return value ends with semicolon [OK]
- Omitting semicolon after return
- Using assignment operator with return
- Using colon instead of semicolon
function add($a, $b) {
return $a + $b;
echo "Done";
}
$result = add(3, 4);
echo $result;Solution
Step 1: Understand return stops function execution
Thereturn $a + $b;sends back 7 and stops the function, soecho "Done";is never run.Step 2: Output the returned value
The variable$resultgets 7, andecho $result;prints 7 only.Final Answer:
7 -> Option AQuick Check:
Return stops function, only 7 printed [OK]
- Expecting code after return to execute
- Confusing echo inside function with return
- Thinking return prints output
function multiply($x, $y) {
$product = $x * $y;
return
$product;
}Solution
Step 1: Analyze the return statement split
Thereturnis on one line alone, so PHP treats it as returning nothing immediately.Step 2: Understand effect of line break after return
The next line$product;is unreachable and not part of return, causing function to return null.Final Answer:
Return statement split incorrectly, returns nothing -> Option BQuick Check:
Return must be on same line as value [OK]
- Splitting return and value on separate lines
- Assuming return reads next line automatically
- Ignoring PHP's automatic semicolon insertion
null if none found?Solution
Step 1: Check condition for non-empty string
function firstNonEmpty(array $arr) { foreach ($arr as $str) { if ($str !== '') { return $str; } } return null; } uses$str !== ''to find strings that are not empty exactly.Step 2: Confirm return value if none found
function firstNonEmpty(array $arr) { foreach ($arr as $str) { if ($str !== '') { return $str; } } return null; } returnsnullif no non-empty string is found, which is clear and intentional.Final Answer:
function firstNonEmpty(array $arr) { foreach ($arr as $str) { if ($str !== '') { return $str; } } return null; } -> Option CQuick Check:
Return first non-empty string or null [OK]
- Using loose truthy check that skips '0' string
- Returning empty string instead of null when none found
- Returning on empty string instead of non-empty
Ready to prove it?
Pass the test and this pattern moves unknown
