Nesting with three levels of quotations
Sebastian Wright
I am trying to create a php variable that has three levels of nested quotes. How do I make a third level around "tackEvent", "downloads", "all", and "nofilter"? The double quotes that I have there are not working.
$outputList .= "<a href=files/".$content_file ." onClick='_gaq.push
(["_trackEvent", "downloads", "all", "nofilter"]);' >" . $content_name .
"</a>"; 1 4 Answers
From here:
- Outer quote = " (This marks the beginning and end of the string)
- Inner quote = \" (Escaped as to not flag "beginning/end of string")
- Third-tier quote = ' (Literal quote)
- Fourth-tier quote = \' (Literal quote that will be generated as an escaped outer quote)
- Outer quote:
" - Inner quote:
' - Third-tier quote:
\" - Fourth-tier quote:
"
$outputList .= <<<LINK
<a href="files/$content_file" onClick="_gaq.push(['_trackEvent', 'downloads', 'all', 'nofilter']);">$content_name</a>
LINK;This is using heredoc syntax.
From the manual:
To specify a literal single quote, escape it with a backslash (\). To specify a literal backslash, double it (\\).
This applies to strings in double quotes as well.
$str = "I am a string with a quote that says, \"I like quotes\"";