Cambios en el lenguaje - Notación clásica de Matrices

¡Atención!Esta lección explica la notación clásica de matrices de PHP, que he dejado de utilizar a partir del curso 2017/18. Como la notación clásica se puede seguir utilizando en PHP, he mantenido esta lección en los apuntes.

Notación compacta de matrices

En PHP 5.4 (publicado en marzo de 2012) se introdujo en PHP la notación compacta de matrices, que permite definir matrices o añadir valores con una sintaxis más parecida a otros lenguajes de programación.

Actualmente (octubre de 2017) ya están dejando de mantenerse los sistemas operativos de servidor que incluían PHP 5.3 o anteriores, que no permitían la notación compacta:

Si se quieren escribir programas que funcionen en el mayor número posible de servidores, se debe utilizar la notación clásica, pero como en clase no tengo tiempo para ver más de una notación, a partir del curso 2017/18 he decidido ver únicamente la notación compacta, aunque los alumnos pueden utilizar la notación clásica si así lo desean.


En resumen, la diferencia entre ambas notaciones reside en la manera de definir matrices o de añadir valores a una matriz.

Operación
Notación clásica
Notación compacta
Definir una matriz
<?php
$nombres = array("Ana", "Bernardo", "Carmen");
?>
<?php
$nombres = ["Ana", "Bernardo", "Carmen"];
?>
Añadir un elemento
<?php
$array_push($nombres, "David");
?>
<?php
$nombres[] = "David";
?>

Crear una matriz

En la notación clásica, para crear una matriz se debe utilizar la función array(...).

<?php
$nombres = array("Ana", "Bernardo", "Carmen");
?>

La notación clásica permite crear matrices vacías (y añadirle posteriormente elementos):

<?php
$nombres = array();
?>

Añadir elementos a una matriz

En la notación clásica, para añadir un elemento a una matriz sin indicar el índice del nuevo elemento se debe utilizar la función array_push($matriz, $elemento).

<?php
$nombres = array("Alba", "Bernardo");

array_push($nombres, "Carlos");

print "<p>$nombres[1]</p>\n";
print "<p>$nombres[2]</p>\n";
?>

Bernardo

Carlos

<?php
$nombres = array(5 => "Alba", 6 => "Bernardo");

array_push($nombres, "Carlos");

print "<p>$nombres[6]</p>\n";
print "<p>$nombres[7]</p>\n";
?>

Bernardo

Carlos