FAQ: Introduction to PHP Functions - Returning NULL

This community-built FAQ covers the “Returning NULL” exercise from the lesson “Introduction to PHP Functions”.

Paths and Courses
This exercise can be found in the following Codecademy content:

Learn PHP

FAQs on the exercise Returning NULL

There are currently no frequently asked questions associated with this exercise – that’s where you come in! You can contribute to this section by offering your own questions, answers, or clarifications on this exercise. Ask or answer a question by clicking reply (reply) below.

If you’ve had an “aha” moment about the concepts, formatting, syntax, or anything else with this exercise, consider sharing those insights! Teaching others and answering their questions is one of the best ways to learn and stay sharp.

Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply (reply) below!

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources? Head here.

Looking for motivation to keep learning? Join our wider discussions.

Learn more about how to use this guide.

Found a bug? Report it!

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

what i didn’t understand that how the statment ($result = returnNothing(); ) Prints: I’m running! I’m running!
i mean… where is the echo statment we just define ($result) and assign the value to it but there is no echo or somthing else.

1 Like

Hello, @majendy, and welcome to the forum. I believe this example code is what you’re referring to:

function returnNothing() 
{
  echo "I'm running! I'm running!\n";
}

$result = returnNothing(); // Prints: I'm running! I'm running!

echo $result; // Nothing is printed

The function returnNothing() has an echo statement in it’s code body. Any time returnNothing() is called, the echo "I'm running! I'm running!\n"; is executed. The $result variable is assigned the return value of the function. The function has no return value, so $result = NULL. We could add a return statement to the function if we wanted to, and that value would be assigned to $result, and then the last line of code: echo $result would print that value.
Like this for example:

function returnNothing() 
{
  echo "I'm running! I'm running!\n"; //prints "I'm running! I'm running!" when the function is called
  return "Okay. I'm finished running.\n"; //returns "Okay. I'm finished running.\n" to the line of code that called the function.
}

$result = returnNothing(); // calls the function, the return value is assigned to $result

echo $result; //  prints the value assigned to $result

Output:

I’m running! I’m running!
Okay. I’m finished running.

Hope this helps!

3 Likes

ohh yes that was helpful thx for your answer

1 Like

Hi, I am not getting this, I am doing everything as per example:

<?php

// Write your code below:
function createVacuum() {
  echo "I have created a vacuuum";
  
} 
$result = createVacuum();
echo $result;
  
echo createVacuum() * 10;

IT PRINTS:

I have created a vacuuumI have created a vacuuum0

The second should not print 0 and the third 10 zeros?

Hello, @tuzso.

Your code includes 2 calls to your createVacuum() function. Inside the function you echo the string, "I have created a vacuuum". You call the function the first time here:

 $result = createVacuum();

Since the function is called, “I have created a vacuuum” is printed. That accounts for the first part of your output.
Next, you echo $result. What value was assigned to $result? Answer: NULL Since createVacuum() has no return value, NULL is returned. When we echo NULL nothing is printed, so you still have just “I have created a vacuuum” as your output.
Then, you have this line:

echo createVacuum() * 10;

createVacuum() is again called, so its echo statement is executed, and “I have created a vacuuum” is once again printed. Now your output looks like this:

I have created a vacuuumI have created a vacuuum

After the function is finished executing it once again returns NULL, so your line of code is essentially now this:

echo NULL * 10; //since NULL is the return value of createVacuum()

That expression evaluates to 0, so 0 is printed which gives you your final output:

I have created a vacuuumI have created a vacuuum0

I took the liberty of editing your post so that the code would display properly. For future posts please see How do I format code in my posts?

2 Likes

Hi! I have a question that is literally breaking my head.
I have this code:

function returnNothing()
{
echo “I’m running! I’m running!\n”;
}
$result = returnNothing();
echo $result;

Theoretically the statement -echo $ result; - it shouldn’t print anything, because there is not a “return” inside the returnNothing() function.
Instead that statement prints the " echo" I’m running! … "
can someone explain to me why?
Thanks a lot <3

My question is of two types:
First, is it that when we try to print a function without a return keyword in it, it will print null?
i.e. the code line:
function amTommy ()
{
echo “You’re welcome Tommy”;
}
echo amTommy();
will return nothing.

Second, or that “echo amTommy()” will execute the instruction iin the function whether or not “return” is present?

Thanks.

return need not be present if there is nothing to return. A lot of PHP functions are going to be like this if they are doing something, namely writing to the response document, but it may be the return that is embedded in a template. It’s the designer’s choice, not a requirement.

Bear in mind that PHP is a pre-processing language that assembles a webpage and sends it down to the client as an HTML document. It is not a language meant to be interactive for users. They don’t even see it, only the response that is sent down.

print and echo are writing to the response document. It takes a minute to grasp this.