Creo que esta puede ser una pregunta estúpida, pero estoy bastante confundido sobre si necesito escapar de la barra invertida en PHP.En PHP, ¿necesito escapar de las barras diagonales inversas?
echo 'Application\Models\User'; prints Application\Models\User
echo 'Application\\Models\\User'; same output
echo 'Application\Model\'User'; gives Application\Model'User
Así que es un carácter de escape, no debería necesitar para escapar de ella (\
) si quiero hacer referencia a Application\Models\User
?
Pero escapar de la barra invertida en sí parece ser opcional, ¿no? Así que puedo escribir tanto ''Hello \ world'' como'' Hello \\ world''. Su respuesta implica eso, por supuesto, porque '\ w' no es una secuencia de escape válida y, por lo tanto, da como resultado lo escrito. – caw
@caw: No. Funciona aquí, pero eso no es porque escaparse de la barra diagonal inversa es "opcional", sino porque la combinación '\ w' no puede coincidir con nada, y por lo tanto vuelve a su forma literal. Pero intente imprimir un solo '\\', por ejemplo, sin escaparse. O cualquier cosa que termine con una sola barra invertida. Obtendrás un error de análisis. –
@Sz Eso es simplemente porque la barra invertida única se interpretará como el carácter de escape para la siguiente comilla simple. Estas en lo correcto, por su puesto. El escape de la barra diagonal inversa suele ser opcional por el motivo que usted indicó, a saber, que será una secuencia de escape no válida en la mayoría de los casos y, por lo tanto, se imprimirá como una barra diagonal inversa literal. – caw