Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => 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 (php) [Seleccionar]
$vacio = [];
$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
Cita de: string Manolo en  1 Octubre 2019, 16:55 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)

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


de todas formas, prueba tu...

Código (php) [Seleccionar]
$time1 = microtime(true) ;
for($i = 0; $i < 1000000; $i++){  
   $n = [];
   $n[] = $i;
}
$time1 = microtime(true) - $time1;

$time2 = microtime(true) ;
for($i = 0; $i < 1000000; $i++){  
   $n = array();
   $n[] = $i;
}
$time2 = microtime(true) -$time2;

$time3 = microtime(true) ;
$time3 = microtime(true) -$time3;
echo "tiempo [] = $time1 <br> tiempo array() = $time2 <br> $time3";


Citartiempo [] = 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:

CitarIn 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
Cita de: MinusFour en  2 Octubre 2019, 19:42 PM
El que escribió ese artículo estaba pensando en javascript:

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