Algunas formas de usar IF sin llaves {} 🛇 (Sin Frameworks)

  • Autor Autor zcriptz
  • Fecha de inicio Fecha de inicio
zcriptz

zcriptz

1
Ómicron
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
Suscripción a IA
Quizás a algunos les parezca tonto, pero he visto muchos códigos con llaves innecesarias.

Ejemplo de un código con llaves:
Insertar CODE, HTML o PHP:
if($_GET['id'] == 20){
    print('Mostrar algo');
}else{
    print('No mostrar');
}

El mismo código sin llaves sería:

Opción 1:

Insertar CODE, HTML o PHP:
if($_GET['id'] == 20)
    print('Mostrar algo');
else:
    print('No mostrar');
endif;

Opción 2:
Insertar CODE, HTML o PHP:
$_GET['id'] == 20
?
    print('Mostrar algo')
:
    print('No mostrar')
;

Opción 3:
Insertar CODE, HTML o PHP:
if($_GET['id'] == 20)
    print('Mostrar algo')
;else
    print('No mostrar')
;

Opción 4: (En este no se usa IF)
Insertar CODE, HTML o PHP:
$_GET['id'] == 20
    AND
print('Mostrar algo')
    OR
print('No mostrar')


_________________________________________________________

En cuanto a las opciones 2 y 3

Podemos usar ; (punto y coma) para saber donde termina si se condiciona el "IF".

¿Pero y si hay más de una cosa que mostrar? Habría más de un ; y el limite se "cortaría" antes...

Se ´podría usar AND (y) ademas nos va a ayudar a continuar con el código si todo va bien, y sino no continuará, porque es todo "y, y, y, y" y si alguno falla no continuará. (Podemos poner un OR con un die para imprimir el error)

Hay que tener en cuenta que el servidor va a revisar cada cosa que pongamos para poder continuar con lo siguiente por lo tanto el consumo será mayor con esta opción. (Si hacemos algo sencillo será imperceptible)

Un ejemplo con llaves con más de un ; (punto y coma)
Insertar CODE, HTML o PHP:
if($_GET['id'] == 20){
    $mostrado = 1;
    print('Mostrar');
}else{
    $error = 1;
    print('No mostrar');
}

El mismo código sin llaves, y con más de una declaración:
Insertar CODE, HTML o PHP:
if($_GET['id'] == 20)
    $mostrado = 1
        AND
    print('Mostrar')
;else
    $error = 1
        AND
    print('asd')
;


Espero que les sirva a aquellos que se vuelven locos con llaves... 😵

PD: Es similar en Javascript.
 
Última edición:
Quizás a algunos les parezca tonto, pero he visto muchos códigos con llaves innecesarias.

Ejemplo de un código con llaves:
Insertar CODE, HTML o PHP:
if($_GET['id'] == 20){
    print('Mostrar algo');
}else{
    print('No mostrar');
}

El mismo código sin llaves sería:
Insertar CODE, HTML o PHP:
if($_GET['id'] == 20)
    print('Mostrar algo')
;else
    print('No mostrar')
;

Es porque podemos usar ; (punto y coma) para indicar donde termina el "IF".


¿Pero y si hay más de una cosa que mostrar? Habría más de un ; y el limite se "cortaría" antes...

Para esto podemos usar AND (y) ademas nos va a ayudar a continuar con el código si todo va bien, y sino no continuará, porque es todo "y, y, y, y" y si alguno falla no continuará. (Podemos poner un OR con un die para imprimir el error)


Un ejemplo con llaves con más de un ; (punto y coma)
Insertar CODE, HTML o PHP:
if($_GET['id'] == 20){
    $mostrado = 1;
    print('Mostrar');
}else{
    $error = 1;
    print('No mostrar');
}

El mismo código sin llaves, y con más de una declaración:
Insertar CODE, HTML o PHP:
if($_GET['id'] == 20)
    $mostrado = 1
        AND
    print('Mostrar')
;else
    $error = 1
        AND
    print('asd')
;


Espero que les sirva a aquellos que se vuelven locos con llaves... 😵

PD: Es similar en Javascript.


Lo uso con Framework lo instalo con composer y ya a programar, aprende a usar framework y podras usarlo, yo antes usaba php puro pero con framework las cosas son mas faciles:

composer json
Insertar CODE, HTML o PHP:
{
  "require": {
    "catfan/medoo": "^1.5",
    "jenssegers/blade": "^1.1",
    "bramus/router": "^1.3",
    "cocur/slugify": "^4.0"
  }
}

asi lo uso yo:


Insertar CODE, HTML o PHP:
@if(!isset($_GET['download']))

@include('VerAPPInfo')

@else

@include('VerAPPDownload')

@endif
 
Lo uso con Framework lo instalo con composer y ya a programar, aprende a usar framework y podras usarlo, yo antes usaba php puro pero con framework las cosas son mas faciles:

composer json
Insertar CODE, HTML o PHP:
{
  "require": {
    "catfan/medoo": "^1.5",
    "jenssegers/blade": "^1.1",
    "bramus/router": "^1.3",
    "cocur/slugify": "^4.0"
  }
}

asi lo uso yo:


Insertar CODE, HTML o PHP:
@if(!isset($_GET['download']))

@include('VerAPPInfo')

@else

@include('VerAPPDownload')

@endif

Ya aclaré en el título que sin Frameworks, gracias! 👍

No uso Frameworks por varias cuestiones... Pero muchos gracias!

Yo lo haría así: (sin Frameworks)
Insertar CODE, HTML o PHP:
$_GET['download']
?
    include('VerAPPInfo')
:
    include('VerAPPDownload')
;
 
Última edición:
luego porque las paginas / webs son lentas y ineficientes xD

pero bueno supongo que para bloques puede ir bien.
 
luego porque las paginas / webs son lentas y ineficientes xD

pero bueno supongo que para bloques puede ir bien.

A mi no me han quedado las webs lentas, es más, lo he utilizado para streaming de videos. (Control de bytes en tiempo real)

PD: se usa e cuando la primer letra que viene de "y" empieza con i, por lo tanto sería "e ineficientes".
 
A mi no me han quedado las webs lentas, es más, lo he utilizado para streaming de videos. (Control de bytes en tiempo real)

PD: se usa e cuando la primer letra que viene de "y" empieza con i, por lo tanto sería "e ineficientes".

Luego hare un benchmarking a ver que tal.

yo conocía esto pero nunca lo usaba, en su momento lo use para un web de anime, pero se caiga re-codifique el código de otra forma y dejo de molestar supuse que una de esas cosas era el código así.

pero no lo comprobé nunca luego probare a ver si es mas rápido.
 
Luego hare un benchmarking a ver que tal.

yo conocía esto pero nunca lo usaba, en su momento lo use para un web de anime, pero se caiga re-codifique el código de otra forma y dejo de molestar supuse que una de esas cosas era el código así.

pero no lo comprobé nunca luego probare a ver si es mas rápido.

No se si más rápido, quizás sea un poco más lento. (Tampoco lo comprobé)

Lo que debería comprobarse según lo que decís es si hay una gran diferencia de velocidad y consumo, no cual es más rápido.
 
No se si más rápido, quizás sea un poco más lento. (Tampoco lo comprobé)

Lo que debería comprobarse según lo que decís es si hay una gran diferencia de velocidad, no cual es más rápido.

Cuando me refiero a rapido, me refiero a rendimiento es decir

Cuanto tiempo completara la instrucción medido en ( µs )

ejemplo

PHP:
while($i < 10000) {

  $tmp .= 'a';

  ++$i;

}

Tiene un tiempo (rapidez, velocidad, rendimiento, etc) de 4 µs.


Segundo

velocidad es sinonimo de rapidez. basicamente lo mismo.
 
Cuando me refiero a rapido, me refiero a rendimiento es decir

Cuanto tiempo completara la instrucción medido en ( µs )
Tiene un tiempo (rapidez, velocidad, rendimiento, etc) de 4 µs.

Segundo

velocidad es sinonimo de rapidez. basicamente lo mismo.

Rápido no es sinónimo de rendimiento, aunque le demos todas las vueltas.

Además que para lo que dijiste, en lugar de ver "cual es más rápido", para mi lo ideal sería ver si "deja la web lenta e ineficiente".

Cuál rinde más, y si es grande la diferencia.
 
Rápido no es sinónimo de rendimiento, aunque le demos todas las vueltas.

Además que para lo que dijiste, en lugar de ver "cual es más rápido", para mi lo ideal sería ver si "deja la web lenta e ineficiente".

Cuál rinde más, y si es grande la diferencia.

Bueno yo no veo asi,

pero rapido es sinonimo de velocidad y tu pusiste velocidad,

rapido es sinonimo de rendimiento producto de productividad/ resultado / velocidad / rapidez / etc pero bueno ignorando eso, simplemente a comprobar al rendimiento basado en lo comentado y listo
 
pero rapido es sinonimo de velocidad y tu pusiste velocidad,

Es que lo usé como sinónimo también, si te fijas no te dije "no hay que medir la rapidez sino la velocidad".

Yo dije
Lo que debería comprobarse según lo que decís es si hay una gran diferencia de velocidad y consumo, no cual es más rápido.

El punto es "si hay una gran diferencia", no dije velocidad corrigiendote.

rapido es sinonimo de rendimiento producto de productividad/ resultado / velocidad / rapidez / etc pero bueno ignorando eso, simplemente a comprobar al rendimiento basado en lo comentado y listo
Hay cosas que por ser rápidas no rinden...

Quizás quisiste decir que rendimiento puede ser la medición de velocidad, resultado, productividad, etc...

Para mi rápido no es sinónimo de rendimiento.
 
Es porque podemos usar ; (punto y coma) para indicar donde termina el "IF".

Es incorrecta tu afirmación, el punto y coma son usados de centinela (depende el contexto). Recomiendo que leas mas sobre la sintaxis de PHP y como esta estructura. A continuación dejo links útiles


Son algo des-actualizadas, pero para lo del IF alcanza

1587365785337.png


Mas información de como trabaja un compilador: https://droscarbruno.wordpress.com/s-s-l-y-teoria-de-lenguajes/

Saludos
 
Última edición por un moderador:
Agrego, el punto "Un ejemplo con llaves con más de un ; (punto y coma) " no hay que usarlo, da errores en determinadas circunstancias, es solo un "hack" por ponerle un nombre, no hay que usarlo porque depende como se ejecuta el programa puede fallar y romper el mismo.

Saludos
 
Agrego, el punto "Un ejemplo con llaves con más de un ; (punto y coma) " no hay que usarlo, da errores en determinadas circunstancias, es solo un "hack" por ponerle un nombre, no hay que usarlo porque depende como se ejecuta el programa puede fallar y romper el mismo.

Saludos

¿Cómo cual?
Porque en el ejemplo puse algo básico.
 
¿Cómo cual?
Porque en el ejemplo puse algo básico.

Cualquier función que tenga como comportamiento devolver false,

PHP:
<?php

function algo_que_devuelve_false(){
    return false;
}


if(20 == 20)
    print(' SE MUESTRA ')
        AND
    algo_que_devuelve_false()
        AND
    print(' - NUNCA SE VA A MOSTRAR - ')
;
 
Cualquier función que tenga como comportamiento devolver false,

PHP:
<?php

function algo_que_devuelve_false(){
    return false;
}


if(20 == 20)
    print(' SE MUESTRA ')
        AND
    algo_que_devuelve_false()
        AND
    print(' - NUNCA SE VA A MOSTRAR - ')
;

Lo puse en el tema.

todo "y, y, y, y" y si alguno falla no continuará. (Podemos poner un OR con un die para imprimir el error)
 
PHP:
<?php

function algo_que_devuelve_false(){
    return false;
}


if(20 == 20)
    print(' SE MUESTRA ')
        AND
    algo_que_devuelve_false()
        AND
    print(' - NUNCA SE VA A MOSTRAR - ')
;

Insertar CODE, HTML o PHP:
function test(){
    return false;
}


if(20 == 20)
    print(' SE MUESTRA ')
        AND
    test()
        OR
    file_put_contents('fallo.txt', 'error')
        AND
    print(' - NO SE MOSTRABA - ')
;

Pero así continuaría y podés registrar el fallo.
 
Es importante no dar malos consejos a programadores iniciados, recomendamos usar el lenguaje de programación de forma sana y no arrastrar malos hábitos que pueden llegar a ser errores a la hora de programar.

Saludos
 
Atrás
Arriba