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

Did I miss a page in which the use of curly brackets is explained at all? Am I missing that information because I did not pay for the course? I know exactly zero HTML (and I will never need it) and this section is extremely confusing. Typically, Codecademy does an amazing job explaining each aspect of code we are learning. I found this part suspiciously lacking. This is the first exercise (in two courses taken so far) that I feel like I did not learn what they are teaching and reviewing their presentation is not adequate.

Then you are wasting your time trying to learn PHP. HTML is the prerequisite. You do know what PHP stands for, right? Preprocessed HTML.

The same applies to the other back end languages, such as Ruby on Rails, Django, etc. They all generate HTML documents to send down to the client as valid web pages.

Today is my Monday, so perhaps my brain just isn’t fully functioning yet.

Checkpoint #3 states, “Add a final div and use it to tell us the person’s favorite food.” and the HINT states, “This should be very similar to what you did in the first checkpoint. Just make sure to use the favorite_food key.” When I run my code, it shows the error, “Did you create a div element?”

The thing is… we haven’t even discussed DIVs before this. And the first checkpoint didn’t include a DIV. So, what’s happening here?

UPDATE (and SPOILER ALERT): I ended up checking the answer code and it was just a matter of replacing the paragraph tag with div tag, but I’m still confused as to why. It doesn’t even make sense to me that we would use a div tag here so why randomly throw this confusing requirement in there?