[Pregunta]: ¿echo lleva paréntesis?

Iniciado por Leguim, 11 Enero 2020, 19:39 PM

0 Miembros y 1 Visitante están viendo este tema.

Leguim

Buenos días,

se dice que no se deben poner paréntesis cuando usamos echo (php) es decir...
Código (php) [Seleccionar]

echo('string');

// esto va a mostrar por pantalla... "string"
// la forma en la que lo hice se dice mucho que no se debe hacer y que la forma correcta es
echo 'string';


¿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)

engel lex

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

Citarecho 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
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

Cita de: MiguelCanellas en 11 Enero 2020, 19:39 PMentonces ¿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...

@XSStringManolo

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 (javascript) [Seleccionar]
<script>
for(;alert('h');alert('e'))alert('l'),alert('l')
alert('o');alert('l'),alert('a')
</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 (php) [Seleccionar]
<?= ('H' . 0 + 1 + 4); >Poner los paréntesis me sirve para eso, siendo prescindibles.