Con la inicialización:
$myArray = array();
if ($myBoolean) {
$myArray['foo'] = 'bar';
}
return $myArray;
Sin inicialización:
if ($myBoolean) {
$myArray['foo'] = 'bar';
}
return $myArray;
En el primer caso, está claro lo que desea que suceda si $ myBoolean es falsa. En el segundo caso, no lo es y php puede emitir una advertencia cuando intente utilizar $ myArray más adelante. Obviamente, este es un caso simplificado, pero en un caso complejo, el "si" puede estar a unas pocas líneas hacia abajo y/o no existir hasta que alguien aparezca y lo agregue más tarde sin darse cuenta de que la matriz no se ha inicializado.
Aunque no es necesario, he visto que la falta de inicialización causa problemas lógicos no obvios como este en funciones complejas que se han modificado mucho con el tiempo.
Es bueno inicializar explícitamente las matrices, y es una manera rápida de vaciar una matriz. –
¿Qué hay de las ventajas de rendimiento al definirlo con 'array()' primero? –
@dotweb: No esperaría ninguna ventaja de rendimiento de eso (tal vez incluso una disminución (insignificante) en el rendimiento, si se crea una matriz, pero nunca se utiliza). – Mchl