Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialAlec Jones
5,510 PointsI cannot understand???
Next, modify the code inside the foreach loop to display the $isbn in parentheses. After the title, add a space, an opening parenthesis, the ISBN, and a closing parenthesis.
<?php
$books["978-0743261690"] = "Gilgamesh"; $books["978-0060931957"] = "The Odyssey"; $books["978-0192840509"] = "Aesop's Fables"; $books["978-0520227040"] = "Mahabharta"; $books["978-0393320978"] = "Beowulf";
?><html> <head> <title>Five Great Books</title> </head> <body> <h1>Five Great Books</h1> <ul> <?php foreach($books as $isbn => $book) { ?> <li><?php echo $book ; ?></li> <?php } ?> </ul> </body> </html>
2 Answers
Jeff Busch
19,287 PointsHi Alec,
This was a tough one, at least for me. I don't really know how to explain it so I'll just show you.
Jeff
<ul>
<?php foreach($books as $isbn => $book) { ?>
<li><?php echo $book . " (" . $isbn . ")"; ?></li>
<?php } ?>
</ul>
Nathan F.
30,773 PointsI can see how the wording could trip someone up to write something like
<?php foreach($books as $isbn => $book) { ?>
<?php echo $book ($isbn); ?>
<?php } ?>
Which would cause syntax errors. You could write
<?php echo $book,$isbn; ?>
But this would output a string that looks like this:
The Great Gatsby978-0743273565
What you want to do is echo a string with a particular format--a title followed by an ISBN in parentheses. So you actually need to concatenate a string with that format. You can also use interpolation to format the string without concatenation:
<?php echo "$book ( $isbn )"; ?>
Nathan F.
30,773 PointsNathan F.
30,773 PointsI can see how the wording could trip someone up to write something like <?php foreach($books as $isbn => $book) { ?> <li><?php echo $book ($isbn); ?></li> <?php } ?>
Which would cause syntax errors. You could write <?php echo $book,$isbn; ?> But this would output a string that looks like this: The Great Gatsby978-0743273565
What you want to do is echo a string with a particular format--a title followed by an ISBN in parentheses. So you actually need to concatenate a string with that format. You can also use interpolation to format the string without concatenation:
<?php echo "$book ( $isbn )"; ?>
Nathan F.
30,773 PointsNathan F.
30,773 PointsApologies for the double answer/comment. My edit function doesn't seem to be behaving nicely.