StormTheGates Posted July 21, 2008 Share Posted July 21, 2008 Aright here is my situation. I have an array of language strings loaded at the top of the page from a language file. Then later the string is called. Some of the strings have variables in them. For example here is a sample: <?php 24 => "You have withdrawn $$with from that ATM account. There is $$amount left.", ?> And then later in the page it goes like this: <?php $amount -= $with; $money=$money + ($with*.; echo "$lang[24]"; ?> However I encounter a problem here, the variables are blank. Any idea why or a way I can fix it? Link to comment https://forums.phpfreaks.com/topic/115918-global-variable-question/ Share on other sites More sharing options...
DarkWater Posted July 21, 2008 Share Posted July 21, 2008 You're using 2 $ signs. Don't. You need to escape them if you want them to be displayed literally. Link to comment https://forums.phpfreaks.com/topic/115918-global-variable-question/#findComment-595968 Share on other sites More sharing options...
StormTheGates Posted July 21, 2008 Author Share Posted July 21, 2008 Thats not it, because this does not work either: <?php Your account number is <b>$act</b> and your pin number is <b>$pin</b>. <b> Write this number down there is no way to recover it</b> ?> Link to comment https://forums.phpfreaks.com/topic/115918-global-variable-question/#findComment-595972 Share on other sites More sharing options...
trq Posted July 21, 2008 Share Posted July 21, 2008 Did you read the last reply at all? Link to comment https://forums.phpfreaks.com/topic/115918-global-variable-question/#findComment-595976 Share on other sites More sharing options...
StormTheGates Posted July 21, 2008 Author Share Posted July 21, 2008 Yes he said that because there were two dollar signs they must be escaped properly to display. However my previous reply to this one does not work either and it only uses one dollar sign. Link to comment https://forums.phpfreaks.com/topic/115918-global-variable-question/#findComment-595977 Share on other sites More sharing options...
trq Posted July 21, 2008 Share Posted July 21, 2008 Yes he said that because there were two dollar signs they must be escaped properly to display. However my previous reply to this one does not work either and it only uses one dollar sign. itds not a string, string are within quotes. Besides that, variables within strings are interpolated when the string is assigned to a variable, not later. What your doing would require eval which I wouldn't recommend. How about.... $s = 'Hello <foo>, this is <bar>'; $a = array('bob','jane'); echo str_replace(array('<foo>','<bar>'),$a,$s); ? Link to comment https://forums.phpfreaks.com/topic/115918-global-variable-question/#findComment-595980 Share on other sites More sharing options...
StormTheGates Posted July 21, 2008 Author Share Posted July 21, 2008 Why wouldnt you recommend eval? These are hard coded language strings, there is 0 user input. Does it pose a security risk? Link to comment https://forums.phpfreaks.com/topic/115918-global-variable-question/#findComment-595981 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.