FAQ: PHP and HTML - Beyond Strings

This community-built FAQ covers the “Beyond Strings” exercise from the lesson “PHP and HTML”.

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

Learn PHP

FAQs on the exercise Beyond Strings

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!
You can also find further discussion and get answers to your questions over in #get-help.

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

Need broader help or resources? Head to #get-help and #community:tips-and-resources. If you are wanting feedback or inspiration for a project, check out #project.

Looking for motivation to keep learning? Join our wider discussions in #community

Learn more about how to use this guide.

Found a bug? Report it online, or post in #community:Codecademy-Bug-Reporting

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!

Hi, I am lost here, where does the ($person_arr) come from in function calculateAge?
Shoud it not be $about _me?

function calculateAge ($person_arr){
  $current_year = date("Y");
  $age = $current_year - $person_arr["birth_year"];
  return $age;
}
?>
<h1>Welcome!</h1>
<h2>About me:</h2>
<?php   
  echo "<h3>Hello! I'm {$about_me["name"]}!</h3>";
  echo "<p> I'm " . calculateAge($about_me). " years old! That's pretty cool, right?</p>";
  echo "<div>What more is there to say? I love {$about_me["favorite_food"]}, and that's pretty much it!</div>";

$person_arr is the parameter, it will receive a value when you call the function. So you pass the value of $about_me to the function

lets say you also have a variable called $about_you, you could do:

calculateAge($about_you)

to calculate your age (instead of my age).

That makes function useful, we can reuse them

2 Likes

I am a little confused with the syntax in the example vs in the hint…

In the text introduction the placement of the {} around the variable is done after the ... //echo "<>Your lucky number is {lucky_number}</>
// return “<>Hello, ${name}!</>”

However in the hints and what seems to work the {} are around the $…
//echo “<>My favorite color is {$data[‘color’]}.</>”;

Which is correct? Or is there a subtle difference in use that I am not seeing? HTML tags partially omitted for clarity.

Thanks

1 Like

I can’t say for sure that there is no difference between the two as I’m still learning this myself but I tried both and they both seem to print in the same way so it may just be down to a writing convention where the code will function either way but one is more accepted by coders.

echo "<h3>${about_me[name]}</h3>";

echo "<p>I am " . calculateAge($about_me) . " years old</p>";

echo "<div>My favorite food is {$about_me[favorite_food]}</div>";

Both [name] and [favorite_food] print correctly in this case and both were accepted as correct by the exercise so if there is a difference, it either isn’t apparent at this point and becomes necessary to know with more advanced code or it’s just a convention.

1 Like

I wish there was some explanation as to why php has this inconsistency where you can call a variable using {$variable} in html, but you cannot do the same for invoking a fuction.

There is a use case for preprending a function name with $, when it is a functor, or function object. I’ll let the writer below tell the whole story.

PHP Function Objects · Simon Holywell