Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: @XSStringManolo en 1 Octubre 2019, 03:20 am



Título: [Resuelto] Mejor forma de declarar un array vacio?
Publicado por: @XSStringManolo en 1 Octubre 2019, 03:20 am
Código
  1. $vacio = [];
  2. $vacio2 = array();

Cual es mejor? O son iguales?


Título: Re: Mejor forma de declarar un array vacio?
Publicado por: engel lex en 1 Octubre 2019, 03:22 am
es exactamente lo mismo, array() es conservado por razones de compatibilidad con programas en PHP<5.4


Título: Re: Mejor forma de declarar un array vacio?
Publicado por: @XSStringManolo en 1 Octubre 2019, 16:55 pm
No hay problemas en que use la función array no? O está deprecated?


Título: Re: Mejor forma de declarar un array vacio?
Publicado por: engel lex en 1 Octubre 2019, 17:08 pm
No hay problemas en que use la función array no? O está deprecated?

no es malo, no cambia nada y no está obsoleta ni parece que vaya estarlo durante php7 o en php8


Título: Re: Mejor forma de declarar un array vacio?
Publicado por: @XSStringManolo en 2 Octubre 2019, 18:26 pm
https://www.geeksforgeeks.org/best-way-to-initialize-empty-array-in-php/

Aquí dicen todo lo contrario.


Título: Re: Mejor forma de declarar un array vacio?
Publicado por: engel lex en 2 Octubre 2019, 19:10 pm
estás leyendo mal, o mejor cita exactamente donde

te puedo decir a bajo nivel array() y [] son alias

https://www.php.net/manual/en/language.types.array.php (https://www.php.net/manual/en/language.types.array.php)

Citar
As of PHP 5.4 you can also use the short array syntax, which replaces array() with [].


de todas formas, prueba tu...

Código
  1. $time1 = microtime(true) ;
  2. for($i = 0; $i < 1000000; $i++){  
  3.    $n = [];
  4.    $n[] = $i;
  5. }
  6. $time1 = microtime(true) - $time1;
  7.  
  8. $time2 = microtime(true) ;
  9. for($i = 0; $i < 1000000; $i++){  
  10.    $n = array();
  11.    $n[] = $i;
  12. }
  13. $time2 = microtime(true) -$time2;
  14.  
  15. $time3 = microtime(true) ;
  16. $time3 = microtime(true) -$time3;
  17. echo "tiempo [] = $time1 <br> tiempo array() = $time2 <br> $time3";

Citar
tiempo [] = 0.36065483093262
tiempo array() = 0.36259293556213
9.5367431640625E-7


un millon de puntos de comparación solo por ser algo grande, agregando 1 elemento al array para evitar el reuso de elementos de la ram (prediccion del cpu) y al final con una operacion de tiempo bruta para asegurarme que es un tiempo real de ejecución y no un error en el microtime

la diferencia está cerca del 0.5% que puede considerarse un error estadistico... (multiple ejecuciones con errores rondando esto) en php 7.3


Título: Re: Mejor forma de declarar un array vacio?
Publicado por: MinusFour en 2 Octubre 2019, 19:42 pm
El que escribió ese artículo estaba pensando en javascript:

Citar
In other words, the initialization of new array is faster, use syntax var first = [] rather while using syntax var first = new Array()

Lo cual es muy diferente en PHP.


Título: Re: Mejor forma de declarar un array vacio?
Publicado por: @XSStringManolo en 2 Octubre 2019, 20:20 pm
El que escribió ese artículo estaba pensando en javascript:

Lo cual es muy diferente en PHP.
Por eso me lié xD