tags:

views:

121

answers:

4

Hello,

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?

+4  A: 

try this

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

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

luca
ah ok so the answer is, don't echo an echo : )
Jared
A: 

Or without the need of escaping double quotes:

$leftMenu = '<div class="leftMenuProductButton">' . $raceramps56["short"] . '</div>';
Paul
A: 
$raceramps56["short"] = "My Test Product";

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

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.

Laykes
thank you for the additional info!
Jared