Anidamiento con tres niveles de cotizaciones

2 minutos de lectura

Avatar de usuario de JSW189
JSW189

Estoy tratando de crear una variable php que tenga tres niveles de comillas anidadas. ¿Cómo hago un tercer nivel alrededor? "tackEvent", "downloads", "all"y "nofilter"? Las comillas dobles que tengo allí no funcionan.

  $outputList .= "<a href=files/".$content_file ." onClick='_gaq.push
(["_trackEvent", "downloads", "all", "nofilter"]);' >" . $content_name . 
"</a>";

  • ¿Puede por favor darnos más detalles sobre esto?

    – Asta

    30 de septiembre de 2011 a las 19:01

De aquí:

  • Comillas externas = ” (Esto marca el principio y el final de la cadena)
  • Comillas internas = \” (Escape para no marcar “comienzo/fin de cadena”)
  • cotización de tercer nivel = “(cita literal)
  • Comilla de cuarto nivel = \” (comilla literal que se generará como una comilla externa escapada)

  • A veces es más cómodo de usar ' en el segundo nivel, por lo que solo necesita comenzar a escapar en el tercer nivel. Es decir, cambie “interior” y “tercer nivel”.

    – El fabricante de herramientas Steve

    15 de julio de 2020 a las 19:38


Avatar de usuario de Joaquim Neto
Joaquim Neto

  • cita exterior: "
  • Cita interna: '
  • Cotización de tercer nivel: \"
  • Cotización de cuarto nivel: &quot;

  • La cuarta cita es & quot;

    – Joaquín Neto

    7 junio 2017 a las 20:27

  • Esto no responde la pregunta. por qué crees que esta es la respuesta? cómo ¿Funciona? Simplemente decirle a alguien que cambie su código sin ningún contexto o significado no les ayuda a aprender lo que hicieron mal.

    – Crutón Gruñón

    07/06/2017 a las 20:33

$outputList .= <<<LINK
<a href="https://stackoverflow.com/questions/7614784/files/$content_file" onClick="_gaq.push(['_trackEvent', 'downloads', 'all', 'nofilter']);">$content_name</a>
LINK;

esto es usar sintaxis heredoc.

Avatar de usuario de Jeff Lambert
jeff lamberto

Desde el manual:

Para especificar una comilla simple literal, escápela con una barra invertida (\). Para especificar una barra invertida literal, duplíquela (\\).

Esto también se aplica a las cadenas entre comillas dobles.

$str = "I am a string with a quote that says, \"I like quotes\"";

¿Ha sido útil esta solución?