Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

PHP Build a Basic PHP Website (2018) Building a Media Library in PHP Variables and Conditionals

Why doesn't this code work? It runs perfectly fine outside of Workspace.

<?php $flavor = "vanilla"; echo "<p>Your favorite flavor of ice cream is "; echo "$flavor"; echo ".</p>"; echo "<p>Hal's favorite flavor is $flavor, also!</p>"; ?>

index.php
<?php
$flavor = "vanilla";
echo "<p>Your favorite flavor of ice cream is ";
echo "$flavor";
echo ".</p>";
echo "<p>Hal's favorite flavor is $flavor, also!</p>";
?>

1 Answer

Julian Gutierrez
Julian Gutierrez
19,201 Points

Remove the quotes around $flavor, you need to echo out the the content that is stored in the variable $flavor not the string "$flavor" which you are currently doing.

<?php
echo $flavor;

Wow, that did the trick. Thanks Julian. I really appreciate your help. Though I'm still a little puzzled as to why it didn't work. I understand that single quotes and double quotes treat variables differently, but if you enclose a variable inside double quotations, the value of that variable should be fetched by PHP. Any input on this?

Julian Gutierrez
Julian Gutierrez
19,201 Points

Yeah didn't think about that but you're correct, echoing out a variable inside of double quotes will parse the PHP. I'm not use to seeing double quotes when it's just a single variable so it might just be the challenge trying to enforce best practice, but that's just my guess.