elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  [Pregunta]: ¿echo lleva paréntesis?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Pregunta]: ¿echo lleva paréntesis?  (Leído 609 veces)
MiguelCanellas


Desconectado Desconectado

Mensajes: 637



Ver Perfil
[Pregunta]: ¿echo lleva paréntesis?
« en: 11 Enero 2020, 19:39 pm »

Buenos días,

se dice que no se deben poner paréntesis cuando usamos echo (php) es decir...
Código
  1. echo('string');
  2.  
  3. // esto va a mostrar por pantalla... "string"
  4. // la forma en la que lo hice se dice mucho que no se debe hacer y que la forma correcta es
  5. echo 'string';
  6.  

¿Pero por qué? Independientemente de cual use va a funcionar, no me va a devolver algún tipo de advertencia o error... entonces ¿por qué no se puede hacer así? (si esto ocasiona algún tipo de problema imperceptible lo voy a cambiar de la forma que me digan, pero tengo esa duda porque hasta donde yo lo veo que tampoco sé muchisimo lo veo como algo inutil pero puedo cambiar de opinión)


En línea

engel lex
CoAdmin
***
Desconectado Desconectado

Mensajes: 15.347



Ver Perfil
Re: [Pregunta]: ¿echo lleva paréntesis?
« Respuesta #1 en: 11 Enero 2020, 19:44 pm »

https://www.php.net/manual/es/function.echo.php

Citar
echo no es realmente una función (es una construcción del lenguaje), por lo que no se requiere el uso de paréntesis con él. echo (a diferencia de otras construcciones del lenguaje) no se comporta como una función, es decir no siempre se puede usar en el contexto de una función. Además, si se quiere pasar más de un parámetro a echo, éstos no deben estar entre paréntesis.

...

Nota: Puesto que esto es una construcción del lenguaje y no una función, no puede ser llamada usando funciones variables.

hay poco que decir fuera de lo que indica allí pero en resumen, echo se comporta a bajo nivel mas parecido a include, function, return, etc... que a un funcion, ve a echo como si fuera una especie de return hacia el buffer de salida...

por qué es así? en resumen... porque si... porque al señor Rasmus Lerdorf le pareció la manera de ser


« Última modificación: 11 Enero 2020, 19:46 pm por engel lex » En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
MinusFour
Moderador Global
***
Conectado Conectado

Mensajes: 4.966


I'm fourth.


Ver Perfil WWW
Re: [Pregunta]: ¿echo lleva paréntesis?
« Respuesta #2 en: 12 Enero 2020, 00:48 am »

entonces ¿por qué no se puede hacer así? (si esto ocasiona algún tipo de problema imperceptible lo voy a cambiar de la forma que me digan, pero tengo esa duda porque hasta donde yo lo veo que tampoco sé muchisimo lo veo como algo inutil pero puedo cambiar de opinión)

No es que no se pueda hacer así. Simplemente que el hecho de agregar paréntesis realmente no hace nada más que hacer trabajar al interprete un poco más quizás y puede confundir a alguien haciendo creer que es una función.

Es como si hicieras: (2) + (2). No está mal... pero tampoco es necesario...
En línea

@XSStringManolo
<svg/onload=alert()>
Colaborador
***
Desconectado Desconectado

Mensajes: 2.229


Turn off the red ligth


Ver Perfil WWW
Re: [Pregunta]: ¿echo lleva paréntesis?
« Respuesta #3 en: 12 Enero 2020, 08:39 am »

Puede confundir usar paréntesis cuando no son necesarios. No se recomienda escribir código que no se sepa lo que va a hacer a primera vista. O que programadores nuevos en el lenguaje en el que programas no sean capaces de entender su funcionamiento.
Por ejemplo:
Código
  1. <script>
  2. for(;alert('h');alert('e'))alert('l'),alert('l')
  3. alert('o');alert('l'),alert('a')
  4. </script>

Este código es totalmente válido y si no conoces como funciona el lenguaje y varias de sus normas como los condicionales en bucles, las iteraciones, los ; implícitos, las , en las expresiones, la omisión de corchetes en bloques de una sola expresión y la omisión de ; en el scope global. No vas a tener ni idea de que va a hacer el código. Y probablemente tras probarlo tampoco entiendas como funciona.
Los paréntesis en el echo pueden dar a entender que como programador quieres resaltar la evaluación de la expresión como tal. Normalmente para indicar: "Hey, no me equivoqué. Realmente quiero hacer esto."
Código
  1. <?= ('H' . 0 + 1 + 4); >
Poner los paréntesis me sirve para eso, siendo prescindibles.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines