Jared
Jared

Reputation: 1793

How to echo an echo in php?

I have some basic PHP code:

$raceramps56["short"] = "My Test Product";

$leftMenu = 

'<div class="leftMenuProductButton"><?PHP echo $raceramps56["short"] ?></div>';

Won't echo the PHP code, only the element. I've tried things like

<div class="leftMenuProductButton">' . <?PHP echo $raceramps56["short"] ?>. '</div>';

Which just returns Parse error: parse error, unexpected '<'

So my question is, how do I either get this to work, or take another approach?

Upvotes: 2

Views: 6537

Answers (5)

user1572008
user1572008

Reputation:

You can run php in a '. You can only echo it like this if you know what I mean.

$leftMenu ='<div class="leftMenuProductButton">.$raceramps56["short"].</div>';
echo $leftMenu;

Use this:

$leftMenu ='<div class="leftMenuProductButton">'.$raceramps56["short"].'</div>';

Upvotes: 1

Layke
Layke

Reputation: 53136

I thought I'd provide some extra information just so you understand.

In your code:

$raceramps56["short"] = "My Test Product";

$leftMenu = 

'<div class="leftMenuProductButton"><?PHP echo $raceramps56["short"] ?></div>';

You are including literally.

Take a read of this. http://php.net/manual/en/language.types.string.php

When I was first learning, I did not understand the different between literal ' and double quotes and it especially caused problems when I was trying to echo things.

Take a look at this:

<?php
echo 'this is a simple string';

echo 'You can also have embedded newlines in 
strings this way as it is
okay to do';

// Outputs: Arnold once said: "I'll be back"
echo 'Arnold once said: "I\'ll be back"';

// Outputs: You deleted C:\*.*?
echo 'You deleted C:\\*.*?';

// Outputs: You deleted C:\*.*?
echo 'You deleted C:\*.*?';

// Outputs: This will not expand: \n a newline
echo 'This will not expand: \n a newline';

// Outputs: Variables do not $expand $either
echo 'Variables do not $expand $either';
?>

If you were to use " " instead of ' you would not get the same output because " will interpret everything rather then take it literally.

I hope this has been of additional help, even though you have had your question answered already.

Upvotes: 1

Gabriel Solomon
Gabriel Solomon

Reputation: 30035

$raceramps56["short"] = "My Test Product";

$leftMenu = '<div class="leftMenuProductButton">' . $raceramps56["short"] . '</div>';
echo $leftMenu;

Upvotes: 0

Paul
Paul

Reputation: 9022

Or without the need of escaping double quotes:

$leftMenu = '<div class="leftMenuProductButton">' . $raceramps56["short"] . '</div>';

Upvotes: 0

Luca Rocchi
Luca Rocchi

Reputation: 6464

try this

$raceramps56["short"] = "My Test Product";

$leftMenu ='<div class="leftMenuProductButton">'.$raceramps56["short"].'</div>';

Upvotes: 5

Related Questions