Diferencia entre revisiones de «PHP básico»
([feat] Add information about PHP básico) |
|||
(No se muestran 71 ediciones intermedias del mismo usuario) | |||
Línea 775: | Línea 775: | ||
<?php | <?php | ||
$frutas = array("limón", "naranja", "banana", "albaricoque"); | $frutas = array("limón", "naranja", "banana", "albaricoque"); | ||
sort($frutas); | sort($frutas); | ||
Línea 780: | Línea 781: | ||
echo "frutas[" . $clave . "] = " . $valor . "\n"; | echo "frutas[" . $clave . "] = " . $valor . "\n"; | ||
} | } | ||
// Salida: | |||
// frutas[0] = albaricoque | |||
// frutas[1] = banana | |||
// frutas[2] = limón | |||
// frutas[3] = naranja | |||
===== Ordenar - rsort ===== | ===== Ordenar - rsort ===== | ||
Línea 810: | Línea 817: | ||
<?php | <?php | ||
$ | $frutas = array("limón", "naranja", "plátano", "manzana"); | ||
rsort($ | |||
rsort($frutas); | |||
foreach ($ | foreach ($frutas as $clave => $valor) { | ||
echo "$ | echo "frutas[" . $clave . "] = " . $valor . "\n"; | ||
} | } | ||
// Salida: | |||
// frutas[0] = plátano | |||
// frutas[1] = naranja | |||
// frutas[2] = manzana | |||
// frutas[3] = limón | |||
===== Ordenar - asort ===== | ===== Ordenar - asort ===== | ||
Línea 850: | Línea 864: | ||
<?php | <?php | ||
$ | $frutas = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"); | ||
asort($ | asort($frutas); | ||
foreach ($ | foreach ($frutas as $clave => $valor) { | ||
echo "frutas[" . $clave . "] = " . $valor . "\n"; | |||
} | } | ||
// Salida: | |||
// frutas[c] = apple | |||
// frutas[b] = banana | |||
// frutas[d] = lemon | |||
// frutas[a] = orange | |||
===== Ordenar - arsort ===== | ===== Ordenar - arsort ===== | ||
Línea 891: | Línea 911: | ||
<?php | <?php | ||
$ | $frutas = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"); | ||
arsort($ | |||
arsort($frutas); | |||
foreach ($ | foreach ($frutas as $clave => $valor) { | ||
echo "frutas[" . $clave . "] = " . $valor . "\n"; | |||
} | } | ||
// Salida: | |||
// frutas[a] = orange | |||
// frutas[d] = lemon | |||
// frutas[b] = banana | |||
// frutas[c] = apple | |||
===== Ordenar - ksort ===== | ===== Ordenar - ksort ===== | ||
Línea 927: | Línea 954: | ||
<?php | <?php | ||
$ | $frutas = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple"); | ||
ksort($ | ksort($frutas); | ||
foreach ($ | foreach ($frutas as $clave => $valor) { | ||
echo "frutas[" . $clave . "] = " . $valor . "\n"; | |||
} | } | ||
// Salida: | |||
// frutas[a] = orange | |||
// frutas[b] = banana | |||
// frutas[c] = apple | |||
// frutas[d] = lemon | |||
===== Ordenar - krsort ===== | ===== Ordenar - krsort ===== | ||
Línea 964: | Línea 997: | ||
<?php | <?php | ||
$ | $frutas = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple"); | ||
krsort($ | krsort($frutas); | ||
foreach ($ | foreach ($frutas as $clave => $valor) { | ||
echo "frutas[" . $clave . "] = " . $valor . "\n"; | |||
} | } | ||
// Salida: | |||
// frutas[d] = lemon | |||
// frutas[c] = apple | |||
// frutas[b] = banana | |||
// frutas[a] = orange | |||
===== Ordenar - natsort ===== | ===== Ordenar - natsort ===== | ||
Línea 1204: | Línea 1243: | ||
// [1] => verde | // [1] => verde | ||
// ) | // ) | ||
// | |||
// [0] => azul | // [0] => azul | ||
// ) | // ) | ||
// | |||
// [0] => 5 | // [0] => 5 | ||
// [1] => 10 | // [1] => 10 | ||
Línea 1299: | Línea 1338: | ||
// [10] => banana | // [10] => banana | ||
// ) | // ) | ||
// | |||
// Array | // Array | ||
// ( | // ( | ||
Línea 1308: | Línea 1347: | ||
// ) | // ) | ||
===== | ===== Rellenar - range ===== | ||
Crear un array que contiene un rango de elementos. | |||
Documentación oficial de range: [https://www.php.net/manual/es/function.range.php ES] | |||
====== Descripción ====== | |||
range(mixed $start, mixed $end, number $step = 1): array | |||
Crea un array que contiene un rango de elementos. | |||
====== | ====== Parámetros ====== | ||
* start: primer valor de la secuencia. | |||
* end: la secuencia finaliza al alcanzar el valor end. | |||
* step: si se proporciona un valor a step, este será usado como el incremento entre los elementos de la secuencia. step debería darse como número positivo. Si no se especifica, el valor predeterminado de step será 1. | |||
====== | ====== Valores devueltos ====== | ||
Devuelve un array de elementos desde start a end, inclusive. | |||
====== | ====== Ejemplo 1 ====== | ||
<?php | |||
// array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) | |||
foreach (range(0, 12) as $número) { | |||
echo $número; | |||
} | |||
=== | ====== Ejemplo 2 ====== | ||
<?php | |||
// El parámetro step | |||
// array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100) | |||
foreach (range(0, 100, 10) as $número) { | |||
echo $número; | |||
} | |||
====== Ejemplo 3 ====== | |||
<?php | |||
// Empleo de las secuencias de caracteres | |||
// array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'); | |||
foreach (range('a', 'i') as $letra) { | |||
echo $letra; | |||
} | |||
====== Ejemplo 4 ====== | |||
<?php | |||
// array('c', 'b', 'a'); | |||
foreach (range('c', 'a') as $letra) { | |||
echo $letra; | |||
} | |||
===== Dividir - array_slice ===== | |||
Extraer una parte de un array. | |||
Documentación oficial de array_slice: [https://www.php.net/manual/es/function.array-slice.php ES] | |||
====== Descripción ====== | |||
array_slice( | |||
array $array, | |||
int $offset, | |||
int $length = null, | |||
bool $preserve_keys = false | |||
): array | |||
array_slice() devuelve la secuencia de elementos del array array tal y como se especifica en los parámetros offset y length. | |||
====== Parámetros ====== | |||
* array: el array de entrada. | |||
* offset: si el índice dado por offset no es negativo, la secuencia empezará en esa posición del array. Si el offset es negativo, la secuencia empezará en esa posición empezando por el final del array. | |||
* length: si la longitud dada por length es positiva, la secuencia tendrá hasta tantos elementos como indique el valor. Si el array es más corto que length, solamente estarán presentes los elementos disponibles del array. Si se proporciona length y es negativo, la secuencia finalizará en tantos elementos empezando por el final del array. Si se omite, entonces la secuencia contendrá todo el contenido desde offset hasta el final del array. | |||
* preserve_keys: Observe que array_slice() reordenará y reinicializará los índices numéricos del array de forma predeterminada. Se puede cambiar esta comportamiento estableciendo el parámetro preserve_keys a true. | |||
====== Valores devueltos ====== | |||
Devuelve la parte del array. Si el índice es mayor que el tamaño del array, devuelve un array vacío. | |||
====== Ejemplo ====== | |||
<?php | |||
$entrada = array("a", "b", "c", "d", "e"); | |||
$salida = array_slice($entrada, 2); // Devuelve "c", "d", y "e" | |||
$salida = array_slice($entrada, -2, 1); // Devuelve "d" | |||
$salida = array_slice($entrada, 0, 3); // Devuelve "a", "b", y "c" | |||
// Observe las diferencias en las claves de los arrays. | |||
print_r(array_slice($entrada, 2, -1)); | |||
print_r(array_slice($entrada, 2, -1, true)); | |||
===== Dividir - array_splice ===== | |||
Extraer una parte de un array. | |||
Documentación oficial de array_splice: [https://www.php.net/manual/es/function.array-splice.php ES] | |||
====== Descripción ====== | |||
array_splice( | |||
array &$input, | |||
int $offset, | |||
int $length = 0, | |||
mixed $replacement = array() | |||
): array | |||
Elimina los elementos designados por offset y length del array input, y los reemplaza con los elementos del array replacement, si se proporcionan. | |||
====== Parámetros ====== | |||
* array: el array de entrada. | |||
* offset: si el índice dado por offset es positivo, el inicio de la porción eliminada estará en ese índice desde el principio del array input. Si offset es negativo, se comienza desde el final del array input. | |||
* length: si se omite la longitud dada por length, se elimina todo desde offset hasta el final del array. Si se especifica length y es positivo, se eliminarán tantos elementos como indique la longitud. Si se especifica length y es negativo, el final de la porción eliminada será de tantos elementos como indique la longitud desde el final del array. Si se especifica length y es cero, no se eliminará ningún elemento. Consejo: para eliminar todo desde offset hasta el final del array cuando también se especifique replacement, use count($input) para length. | |||
* replacement: si se especifica el array replacement, los elementos eliminados serán reemplazados con los elementos de este array. | |||
====== Valores devueltos ====== | |||
Devuelve un array que consiste en los elementos extraídos. | |||
====== Observaciones ====== | |||
* Si offset y length son tales que no se elimina nada, los elementos del array replacement serán insertados en el lugar especificado por offset. Observe que las claves del array replacement no se preservan. | |||
* Si replacement es sólo un elemento, no es necesario poner array() alrededor de él, a menos que el elemento sea un array, un objeto o null. | |||
====== Ejemplo ====== | |||
<?php | |||
$entrada = array("rojo", "verde", "azul", "amarillo"); | |||
array_splice($entrada, 2); | |||
// $entrada ahora es array("rojo", "verde") | |||
$entrada = array("rojo", "verde", "azul", "amarillo"); | |||
array_splice($entrada, 1, -1); | |||
// $entrada ahora es array("rojo", "amarillo") | |||
$entrada = array("rojo", "verde", "azul", "amarillo"); | |||
array_splice($entrada, 1, count($entrada), "naranja"); | |||
// $entrada ahora es array("rojo", "naranja") | |||
$entrada = array("rojo", "verde", "azul", "amarillo"); | |||
array_splice($entrada, -1, 1, array("negro", "granate")); | |||
// $entrada ahora es array("rojo", "verde", "azul", "negro", "granate") | |||
$entrada = array("rojo", "verde", "azul", "amarillo"); | |||
array_splice($entrada, 3, 0, "púpura"); | |||
// $entrada ahora es array("rojo", "verde", "azul", "púpura", "amarillo"); | |||
===== Dividir - array_chunk ===== | |||
Divide un array en fragmentos. | |||
Documentación oficial de array_chunk: [https://www.php.net/manual/es/function.array-chunk.php ES] | |||
====== Descripción ====== | |||
array_chunk(array $array, int $size, bool $preserve_keys = false): array | |||
Divide un array en arrays con elementos del tamaño definido en size. El último fragmento puede contener menos elementos que size. | |||
====== Parámetros ====== | |||
* array: array para trabajar. | |||
* size: el tamaño de cada fragmento. | |||
* preserve_keys: cuando se establece en true las keys serán preservadas. El valor por defecto es false lo cual reindexará los fragmentos numéricamente. | |||
====== Valores devueltos ====== | |||
Retorna un array multidimensional indexado numéricamente, comenzando desde cero, en el cual cada dimensión contiene la cantidad de elementos definida en size. | |||
====== Observaciones ====== | |||
* Si size es inferior a 1, una E_WARNING será arrojada y null será retornado. | |||
====== Ejemplo ====== | |||
<?php | |||
$input_array = array('a', 'b', 'c', 'd', 'e'); | |||
print_r(array_chunk($input_array, 2)); | |||
print_r(array_chunk($input_array, 2, true)); | |||
===== Modificar - array_shift ===== | |||
Quita un elemento del principio del array. | |||
Documentación oficial de array_shift: [https://www.php.net/manual/es/function.array-shift.php ES] | |||
====== Descripción ====== | |||
array_shift(array &$array): mixed | |||
array_shift() Quita el primer valor del array y lo devuelve, acortando el array un elemento y corriendo el array hacia abajo. Todas la claves del array numéricas serán modificadas para que empiece contando desde cero mientras que las claves literales no se verán afectadas. | |||
====== Parámetros ====== | |||
* array: array de entrada. | |||
====== Valores devueltos ====== | |||
Devuelve el valor quitado, o null si el array está vacío o no es un array. | |||
====== Ejemplo ====== | |||
<?php | |||
$stack = array("naranja", "plátano", "manzana", "frambuesa"); | |||
$fruit = array_shift($stack); | |||
print_r($stack); | |||
// Salida | |||
// Array | |||
// ( | |||
// [0] => plátano | |||
// [1] => manzana | |||
// [2] => frambuesa | |||
// ) | |||
===== Modificar - array_unshift ===== | |||
Añadir al inicio de un array uno a más elementos. | |||
Documentación oficial de array_unshift: [https://www.php.net/manual/es/function.array-unshift.php ES] | |||
====== Descripción ====== | |||
array_unshift(array &$array, mixed $... = ?): int | |||
array_unshift() añade los elementos pasados al inicio de array. Observe que la lista de elementos se añade como un todo, por lo que los elementos añadidos permanecen en el mismo orden. Todas las claves numéricas del array serán modificadas empezando a contar desde cero mientras que las claves literales no serán cambiadas. | |||
====== Parámetros ====== | |||
* array: array de entrada. | |||
* ...: los valores a añadir al inicio. | |||
====== Valores devueltos ====== | |||
Devuelve el nuevo número de elementos del array. | |||
====== Ejemplo ====== | |||
<?php | |||
$cola = array("naranja", "banana"); | |||
array_unshift($cola, "manzana", "frambuesa"); | |||
print_r($cola); | |||
// Salida | |||
// Array | |||
// ( | |||
// [0] => manzana | |||
// [1] => frambuesa | |||
// [2] => naranja | |||
// [3] => banana | |||
// ) | |||
===== Modificar - array_pop ===== | |||
Extrae el último elemento del final del array. | |||
Documentación oficial de array_pop: [https://www.php.net/manual/es/function.array-pop.php ES] | |||
====== Descripción ====== | |||
array_pop(array &$array): mixed | |||
array_pop() extrae y devuelve el último elemento del array, acortando el array con un elemento menos. | |||
====== Parámetros ====== | |||
* array: el array de donde obtener el valor. | |||
====== Valores devueltos ====== | |||
Devuelve el último elemento del array. Si el array está vacío (o no es un array), se devolverá null. | |||
====== Observaciones ====== | |||
* Esta función arrojará un error de nivel E_WARNING cuando se invoca con algo distinto de un array. | |||
====== Ejemplo ====== | |||
<?php | |||
$stack = array("naranja", "plátano", "manzana", "frambuesa"); | |||
$fruit = array_pop($stack); | |||
print_r($stack); | |||
// Salida | |||
// Array | |||
// ( | |||
// [0] => naranja | |||
// [1] => plátano | |||
// [2] => manzana | |||
// ) | |||
===== Modificar - array_push ===== | |||
Inserta uno o más elementos al final de un array. | |||
Documentación oficial de array_push: [https://www.php.net/manual/es/function.array-push.php ES] | |||
====== Descripción ====== | |||
= | array_push(array &$array, mixed $value1, mixed $... = ?): int | ||
array_push() trata a un array como si fuera una pila y coloca la variable que se le proporciona al final del array. El tamaño del array será incrementado por el número de variables insertados. Tiene el mismo efecto que: | |||
<?php | <?php | ||
class Car { | $array[] = $var; | ||
Repetiendo por cada valor proporcionado. | |||
====== Parámetros ====== | |||
* array: el array de entrada. | |||
* value1: el primer valor a colocar al final de array. | |||
====== Valores devueltos ====== | |||
Devuelve el nuevo número de elementos del array. | |||
====== Observaciones ====== | |||
* Si se utiliza array_push() para añadir un solo elemento al array, es mejor utilizar $array[] = ya que de esta forma no existe la sobrecarga de llamar a una función. | |||
* array_push() generará una advertencia si el primer argumento no es un array. Esto difiere del comportamiento de $var[] donde se creará un nuevo array. | |||
====== Ejemplo ====== | |||
<?php | |||
$pila = array("naranja", "plátano"); | |||
array_push($pila, "manzana", "arándano"); | |||
print_r($pila); | |||
// Salida | |||
// Array | |||
// ( | |||
// [0] => naranja | |||
// [1] => plátano | |||
// [2] => manzana | |||
// [3] => arándano | |||
// ) | |||
=== object === | |||
Un objeto es una estructura de datos que contiene propiedades (lo que normalmente se considera ''datos'') y métodos (funciones que nos permite manipular las propiedades del objeto). | |||
==== Ejemplo ==== | |||
<?php | |||
class Car { | |||
function get_color() { | |||
echo "El car es blanco"; | |||
} | |||
} | } | ||
// Inicializar un objeto. | |||
$auto = new Car(); | |||
echo $auto->get_color(); | |||
===== Ejemplo | ==== Funciones ==== | ||
En PHP existe una función que comprueba si una variable es de tipo object. | |||
La función se llama '''is_object''' y devuelve si la variable es un object o no. | |||
Documentación oficial: [https://www.php.net/manual/es/function.is-object.php ES] | |||
===== Ejemplo ===== | |||
<?php | <?php | ||
class Car { | class Car { | ||
function get_color() { | function get_color() { | ||
echo "El | echo "El car es blanco"; | ||
} | } | ||
} | } | ||
Línea 1476: | Línea 1848: | ||
== Operadores aritméticos == | == Operadores aritméticos == | ||
Documentación oficial de los operadores aritméticos: [https://www.php.net/manual/es/language.operators.arithmetic.php ES] | |||
=== Suma === | === Suma === | ||
Suma: $a + $b | Suma: $a + $b | ||
==== Ejemplo ==== | |||
<?php | |||
$numero1 = 6; | |||
$numero2 = 2; | |||
$suma = $numero1 + $numero2; | |||
echo "La suma es: " . $suma; // 8 | |||
=== Resta === | === Resta === | ||
Resta: $a – $b | Resta: $a – $b | ||
==== Ejemplo ==== | |||
<?php | |||
$numero1 = 6; | |||
$numero2 = 2; | |||
$resta = $numero1 - $numero2; | |||
echo "La resta es: " . $resta; // 4 | |||
=== Multiplicación === | === Multiplicación === | ||
Multiplicación: $a * $b | Multiplicación: $a * $b | ||
==== Ejemplo ==== | |||
<?php | |||
$numero1 = 3; | |||
$numero2 = 5; | |||
$multiplicacion = $numero1 * $numero2; | |||
echo "La multiplicación es: " . $multiplicacion; // 15 | |||
=== División === | === División === | ||
División: $a / $b | División: $a / $b | ||
==== Ejemplo ==== | |||
<?php | |||
$numero1 = 10; | |||
$numero2 = 2; | |||
$division = $numero1 / $numero2; | |||
echo "La división es: " . $division; // 5 | |||
=== Resto de una división === | === Resto de una división === | ||
Resto de una división: $a % $b | Resto de una división: $a % $b | ||
==== Ejemplo ==== | |||
<?php | |||
$numero1 = 10; | |||
$numero2 = 2; | |||
$resto = $numero1 % $numero2; | |||
echo "El resto es: " . $resto; // 0 | |||
=== Incremento === | === Incremento === | ||
++ sirven para incrementar una unidad el valor de la variable. Dependiendo de dónde se coloquen (antes o después de la variable) el resultado del cálculo puede diferir debido al momento en que se ejecuta la adición de la unidad. | |||
==== Pre-incremento ==== | |||
Incremento: ++$a | |||
Incrementa $a en uno y luego devuelve $a. | |||
===== Ejemplo ===== | |||
<?php | |||
$numero1 = 4; | |||
echo "El valor de numero1 es: " . ++$numero1; // 5 | |||
==== Post-incremento ==== | |||
Incremento: $a++ | Incremento: $a++ | ||
Devuelve $a y luego incrementa $a en uno. | |||
===== Ejemplo ===== | |||
<?php | |||
$numero1 = 4; | |||
echo "El valor de numero1 es: " . $numero1++; // 4 | |||
=== Decremento === | === Decremento === | ||
Decremento: | -- sirven para decrementar una unidad el valor de la variable. Dependiendo de dónde se coloquen (antes o después de la variable) el resultado del cálculo puede diferir debido al momento en que se ejecuta la resta de la unidad. | ||
==== Pre-decremento ==== | |||
Decremento: --$a | |||
Decrementa $a en uno y luego devuelve $a. | |||
===== Ejemplo ===== | |||
= | <?php | ||
$numero1 = 4; | |||
echo "El valor de numero1 es: " . --$numero1; // 3 | |||
=== Menor que === | ==== Post-decremento ==== | ||
Decremento: $a-- | |||
Devuelve $a y luego decrementa $a en uno. | |||
===== Ejemplo ===== | |||
<?php | |||
$numero1 = 4; | |||
echo "El valor de numero1 es: " . $numero1--; // 4 | |||
== Operadores condicionales == | |||
Documentación oficial de operadores condicionales: [https://www.php.net/manual/es/language.operators.comparison.php ES] | |||
=== Menor que (<) === | |||
Menor que: $a < $b | Menor que: $a < $b | ||
=== Mayor que === | ==== Ejemplo ==== | ||
<?php | |||
$a = 3; | |||
$b = 8; | |||
if($a < $b){ | |||
echo "$a es menor a $b"; | |||
}else{ | |||
echo "$a no menor a $b"; | |||
} | |||
=== Mayor que (>) === | |||
Mayor que: $a > $b | Mayor que: $a > $b | ||
=== Menor o igual que === | ==== Ejemplo ==== | ||
<?php | |||
$a = 8; | |||
$b = 3; | |||
if($a > $b){ | |||
echo "$a es mayor a $b"; | |||
}else{ | |||
echo "$a no mayor a $b"; | |||
} | |||
=== Menor o igual que (<=) === | |||
Menor o igual que: $a <= $b | Menor o igual que: $a <= $b | ||
=== Mayor o igual que === | ==== Ejemplo ==== | ||
<?php | |||
$a = 8; | |||
$b = 11; | |||
if($a <= $b){ | |||
echo "$a es menor o igual a $b"; | |||
}else{ | |||
echo "$a no menor o igual a $b"; | |||
} | |||
=== Mayor o igual que (>=) === | |||
Mayor o igual que: $a >= $b | Mayor o igual que: $a >= $b | ||
=== Igual que === | ==== Ejemplo ==== | ||
<?php | |||
$a = 11; | |||
$b = 8; | |||
if($a >= $b){ | |||
echo "$a es mayor o igual a $b"; | |||
}else{ | |||
echo "$a no mayor o igual a $b"; | |||
} | |||
=== Igual que (==) === | |||
Igual que: $a == $b | Igual que: $a == $b | ||
=== | Es true si $a es igual a $b, no importa el tipo de dato. | ||
==== Ejemplos ==== | |||
===== Ejemplo 1 ===== | |||
<?php | |||
$a = 11; | |||
$b = "11"; | |||
if($a == $b){ | |||
echo "$a es igual a $b"; | |||
}else{ | |||
echo "$a no es igual a $b"; | |||
} | |||
=== Idéntico que (===) === | |||
Igual que: $a === $b. | |||
Es true si $a es igual a $b, y son del mismo tipo. | |||
==== Ejemplos ==== | |||
===== Ejemplo 1 ===== | |||
<?php | |||
$a = 11; | |||
$b = 11; | |||
if($a === $b){ | |||
echo "$a es idéntico a $b"; | |||
}else{ | |||
echo "$a no es idéntico a $b"; | |||
} | |||
===== Ejemplo 2 ===== | |||
<?php | |||
$a = 11; | |||
$b = "11"; | |||
if($a === $b){ | |||
echo "$a es idéntico a $b"; | |||
}else{ | |||
echo "$a no es idéntico a $b"; | |||
} | |||
=== Diferente que (!=) o (<>) === | |||
Existen dos tipos: | |||
* != | |||
* <> | |||
==== != ==== | |||
Diferente $a != $b | |||
Es true si $a no es igual a $b, pero sin comparar el tipo de dato. | |||
===== Ejemplo ===== | |||
<?php | |||
$a = 11; | |||
$b = 13; | |||
if($a != $b){ | |||
echo "$a es diferente a $b"; | |||
}else{ | |||
echo "$a no es diferente a $b"; | |||
} | |||
==== <> ==== | |||
Diferente $a <> $b | |||
Es true si $a no es igual a $b, pero sin comparar el tipo de dato. | |||
===== Ejemplo ===== | |||
<?php | |||
$a = 11; | |||
$b = 13; | |||
if($a <> $b){ | |||
echo "$a es diferente a $b"; | |||
}else{ | |||
echo "$a no es diferente a $b"; | |||
} | |||
=== No idéntico que (!==) === | |||
Igual que: $a !== $b. | |||
Es true si $a no es igual a $b, o si no son del mismo tipo. | |||
==== Ejemplo ==== | |||
<?php | |||
$a = 11; | |||
$b = "11"; | |||
if($a !== $b){ | |||
echo "$a no es idéntico a $b"; | |||
}else{ | |||
echo "$a es idéntico a $b"; | |||
} | |||
= Estructuras de control = | = Estructuras de control = | ||
= | Un programa PHP se ejecuta en principio de forma secuencial, desde la primera instrucción hasta la última y de una en una (secuencialmente línea por línea). Las estructuras de control permiten modificar este flujo, eligiendo entre instrucciones alternativas o repitiendo instrucciones. | ||
== Tipos == | |||
=== if ... elseif ... else ... === | |||
==== if ==== | |||
La construcción '''if''' le permite ejecutar un fragmento de código si la expresión provista junto con ella se evalúa como verdadera (true). | |||
= | ===== Ejemplo ===== | ||
= | <?php | ||
$edad = 37; | |||
if($edad > 30){ | |||
echo "Tengo mas de 30 años!!!"; | |||
} | |||
==== else ==== | |||
La construcción ''if'', que le permite ejecutar un fragmento de código si la expresión se evalúa como verdadera. Por otro lado, si la expresión se evalúa como falsa, no hará nada. | |||
Si desea ejecutar un fragmento de código diferente si la expresión se evalúa como falsa (false), se utiliza la palabra reservada '''else'''. | |||
Siempre se utiliza la sentencia ''else'' junto con una sentencia ''if''. | |||
==== | ===== Ejemplo ===== | ||
<?php | <?php | ||
$edad = 25; | |||
if($edad > 30){ | |||
echo "Tengo mas de 30 años!!!"; | |||
}else { | |||
echo "Tengo menos de 30 años!!!"; | |||
} | } | ||
= | ==== elseif ==== | ||
La sentencia '''elseif''' es una extensión de la construcción ''if-else''. Si tiene más de dos opciones para elegir, puede usar la declaración ''elseif''. | |||
===== Ejemplo ===== | |||
<?php | |||
$edad = 25; | |||
if($edad < 30){ | |||
echo "Tengo menos de 30 años!!!"; | |||
}elseif ($edad > 30 && $edad < 40) { | |||
echo "Tengo entre 30 a 40 años!!!"; | |||
}elseif ($edad > 40 && $edad < 50) { | |||
echo "Tengo entre 40 a 50 años!!!"; | |||
}elseif ($edad > 50 && $edad < 60) { | |||
echo "Tengo entre 50 a 60 años!!!"; | |||
}else{ | |||
echo "Tengo mas de 60 años!!!"; | |||
} | |||
=== switch === | |||
'''switch''' es como una serie de sentencias ''if''. Se utiliza para comparar una misma variable o expresión con valores diferentes y ejecutar un código diferente a otro dependiendo de esos valores. | |||
==== Observaciones ==== | |||
* Cuando una sentencia ''case'' coincide con el valor de la sentencia switch, PHP ejecuta el código dentro del case. PHP sigue ejecutando las sentencias hasta el final o hasta que choca con un '''break'''. Si se omite break, swith ejecutará todos los cases restantes cuando encuentra uno que cumpla con la condición. | |||
* En caso de que no haya ningún case válido, puede utilizarse ''default'', para ejecutar algo cuando no se cumplen los case. | |||
* En los cases sólo se permiten tipos simples: int, float y string. Los arrays y objetos pueden utilizarse si se muestran como un tipo simple. | |||
==== | ==== Ejemplos ==== | ||
Ejemplo | ===== Ejemplo 1 ===== | ||
<?php | <?php | ||
$i = 0; | |||
switch($i) { | |||
case 0: | |||
echo "i es igual a 0"; | |||
break; | |||
case 1: | |||
echo "i es igual a 1"; | |||
break; | |||
default: | |||
echo "i no es ni 0 ni 1"; | |||
$ | } | ||
===== Ejemplo 2 ===== | |||
<?php | |||
$i = 3; | |||
switch($i) { | |||
case 0: | |||
case 1: | |||
case 2: | |||
echo "i es igual a $i"; | |||
break; | |||
case 3: | |||
echo "i es igual a 3"; | |||
break; | |||
default: | |||
echo "i no es ni 0 ni 1 ni 2 ni 3"; | |||
} | |||
=== Bucle while === | |||
Se ejecutan las sentencias dentro del while siempre y cuando se evalúen como true. El valor de la expresión se comprueba | |||
cada vez al inicio del loop, y la ejecución no se detendrá hasta que finalice la iteración (cada vez que PHP ejecuta las sentencias en un loop es una iteración). Si la expresión while se evalúa como false, las sentencias no se ejecutarán ni siquiera una vez. | |||
==== Ejemplo ==== | |||
<?php | |||
$i = 1; | |||
while($i <= 10){ | |||
echo $i; | |||
$i++; | |||
} | } | ||
==== Ejemplo | === Bucle do ... while === | ||
Es muy similar a los loops ''while'', simplemente aquí la expresión para el loop se verifica al final en lugar de al principio, esto garantiza que el código se ejecute por lo menos la primera vez. | |||
==== Ejemplo ==== | |||
<?php | |||
$i = 0; | |||
do { | |||
echo $i; | |||
} while ($i > 0); | |||
=== Bucle for === | |||
$i = 1; $i <= 10; $i++ | |||
==== Observaciones ==== | |||
* Las expresiones o conjunto de expresiones van separadas por punto y coma ; y sólo hay 3. | |||
* La primera expresión, $i = 1, se ejecuta una vez incondicionalmente al comienzo del bucle. | |||
* La segunda expresión, $i <= 10, es una condición, si es true, se ejecutará la tercera expresión. | |||
* La tercera expresión, $i++, es la acción a realizar si se cumple la segunda expresión. | |||
* Cada una de las expresiones pueden estar vacías o contener múltiples expresiones. Si la expresión 2 está vacía, el loop será definido como true. | |||
==== Ejemplo ==== | |||
<?php | <?php | ||
for($i = 1; $i <= 10; $i++) { | |||
echo $i; | |||
} | |||
= | === Bucle foreach === | ||
foreach permite una forma fácil de iterar sobre arrays u objetos. | |||
Cuando foreach inicia su ejecución, el puntero apunta directamente al primer elemento del array. | |||
== Ejemplos == | ==== Ejemplos ==== | ||
=== Ejemplo 1 === | ===== Ejemplo 1 ===== | ||
<?php | |||
$array = array(1, 2, 3, 4); | |||
// Devuelve directamente el value | |||
// de cada key, comenzando desde | |||
// el primero. | |||
foreach ($array as $value) { | |||
echo $value . " - "; | |||
} | |||
===== Ejemplo 2 ===== | |||
<?php | |||
$frutas = array( | |||
"manzana" => 1, | |||
"pera" => 5, | |||
"uva" => 3, | |||
); | |||
// Devuelve directamente el value | |||
// de cada key, comenzando desde | |||
// el primero. | |||
foreach ($frutas as $key => $value) { | |||
echo "La $key tiene $value unidades<nowiki><br/></nowiki>"; | |||
} | |||
= Funciones = | |||
Las funciones o procedimientos son una característica en PHP por el cual, podemos asignar un nombre a una porción de código para luego llamarla más tarde. Las funciones permiten pasarle unas variables a esa porción de código o incluso que ese código devuelva información al lugar donde se le llamó. | |||
Las funciones son uno de los mecanismos que dispone la programación para saltarse la programación secuencial. | |||
Documentación oficial de funciones en PHP: [https://www.php.net/manual/es/language.functions.php ES] | |||
== Ventajas == | |||
* | * Podemos saltarnos el orden natural de ejecución de código (secuencial) para llamar a las funciones que pueden estar creadas en el mismo fichero o en otros. | ||
* | * Nos permiten lograr un código mucho más organizado. Tendremos porciones de código declaradas una sola vez, y podemos utiliarlas en cualquier lado, sin repetir esa funcionalidad. | ||
* | * Si los nombres de las funciones son lo suficientemente claros, no nos hará falta colocar comentarios. | ||
* | * Simplifican nuestro código, haciéndolo más legible y fácil de mantener. | ||
== | == Crear funciones == | ||
Para crear una función en PHP se necesita utilizar la palabra reservada ''function'' con un nombre que la va a identificar, para luego poder utilizarla. | |||
function nombre_de_mi_funcion() { | |||
// Líneas de código que pertenecen a la función. | |||
} | } | ||
=== Observaciones === | |||
* Cualquier código PHP puede aparecer dentro de una función, incluso en otras funciones y definiciones de clases. | |||
* Los nombres de las funciones siguen las mismas reglas que las demás etiquetas de PHP. Un nombre de función válido comienza con una letra o guion bajo, seguido de cualquier número de letras, números o guiones bajos. | |||
* Las funciones pueden contener parámetros de entrada, pero no son obligatorias. | |||
* Las funciones pueden devolver o no valores. | |||
=== Ejemplos === | |||
==== Ejemplo 1 ==== | |||
Este ejemplo no tiene parámetros en la función como tampoco devuelve un valor. | |||
<?php | |||
function saludo(){ | |||
echo "Bienvenido Proyectos Beta.\n"; | |||
} | } | ||
saludo(); | |||
==== Ejemplo 2 ==== | |||
<?php | |||
function saludo($nombre){ | |||
$result = "Me llamo $nombre"; | |||
return $result; | |||
} | |||
$nombre = saludo("Luis"); | |||
echo $nombre; | |||
= Extras = | = Extras = |
Revisión actual - 11:43 20 sep 2022
Sintaxis básica
Documentacion oficial de la sintaxis de PHP: ES
El script PHP se ejecuta en el servidor y el resultado HTML se envía al navegador. Normalmente puede tener etiquetas HTML y PHP, pero no se recomienda. Era una práctica que se hacia hace mucho tiempo y le dio una mala fama a PHP. La recomendación es tener SOLO código PHP. Los archivos PHP se guardan con la extensión ".php".
PHP o preprocesador de hipertexto es un lenguaje de scripting de uso general de código abierto.
Etiquetas PHP
Cuando PHP analiza un fichero, busca las etiquetas de apertura y cierre, que son <?php y ?>, y que indican a PHP dónde empezar y finalizar la interpretación del código. Este mecanismo permite embeber a PHP en todo tipo de documentos, ya que todo lo que esté fuera de las etiquetas de apertura y cierre de PHP será ignorado por el analizador.
PHP también permite la etiqueta de apertura abreviada <? (la cual está desaconsejada debido a que sólo está disponible si se habilita con la directiva short_open_tag del fichero de configuración php.ini, o si PHP se configuró con la opción --enable-short-tags).
Si un fichero contiene solamente código de PHP, es preferible omitir la etiqueta de cierre de PHP al final del mismo. Así se previene la adición de espacios en blanco o nuevas líneas accidentales después de la etiqueta de cierre, lo cual causaría efectos no deseados.
Comentarios
Documentación oficial de comentarios de PHP: ES
El estilo de comentarios en PHP es como el de C, C++ o Perl:
Una sola línea
<?php echo 'Hola Proyectos Beta' ; // Esto es un comentario de una línea ?>
Múltiples líneas
Los comentarios de varias líneas finalizan con el primer */:
<?php /* echo 'Esto es un comentario'; /* Más comentario */ */ ?>
Variables y constantes
Variables
Documentación oficial de variables en PHP ES
Una variable es un espacio de memoria reservado para almacenar un valor, con el objeto de poder visualizarlo, modificarlo u operar con él cuando se lo necesite durante la ejecución de un programa.
Esto significa que en cualquier momento, una variable puede cambiar de valor (de ahí su nombre).
En PHP, las variables son declaradas anteponiendo el símbolo del dólar ($) al nombre de esta. Los nombres de las variables deberán comenzar por una letra o por un guion bajo (_). No podrán comenzar por un número o un carácter especial.
Ejemplos
<?php $nombre = "Proyectos Beta"; ?>
Los nombres de variable en PHP son sensibles a mayúsculas y minúsculas, por lo que:
$nombre, no es igual que $Nombre. Ambas son consideradas variables distintas.
Todos los valores que sean cadenas de caracteres, deben especificarse entre comillas (" ").
Constantes
Documentación oficial de constantes en PHP: ES
Existen casos en los que necesitamos almacenar un valor en concreto, pero sabemos que ese valor no se va a modificar en ningún momento de la ejecución del programa. Para ello usamos una constante.
Ejemplos
Constantes correctas
<?php // Nombres de constantes correctas. define ("PI", "3,14159265358979323846"); define("FOO", "something"); define("FOO2", "something else"); define("FOO_BAR", "something more"); echo (PI); echo (FOO); echo (FOO2); echo (FOO_BAR); ?>
Constantes incorrectas
<?php // Nombres de constantes incorrectas. define("2FOO", "something"); ?>
Tipo de datos
Documentación oficial de tipo de datos PHP: ES
Documentación oficial de tipo de datos PHP: EN
Cuatro tipos escalares:
- boolean
- integer
- float (número de punto flotante, también conocido como double)
- string (cadenas de caracteres)
Cuatro tipos compuestos:
- array
- object
- callable
- iterable
Dos tipos especiales:
- resource
- NULL
Tipo escalares
Booleanos
El tipo de dato boolean contiene un valor lógico que solo admite true o false (verdadero o falso).
En PHP existe una función que comprueba si una variable es de tipo boolean.
La funcion se llama is_bool y devuelve si la variable es un booleano o no.
Documentación oficial: ES
Ejemplos
Ejemplo 1
$flag = true;
Ejemplo 2
$flag = true; if(is_bool($flag)){ echo "Es boolean."; }else{ echo "No es boolean."; }
Números enteros (integers)
El tipo de dato integer (entero) contiene valores de números enteros (1, 2, 3, 4, 5, 6, 7, 8, 9...).
En PHP existe una función que comprueba si una variable es de tipo integer.
La funcion se llama is_int y devuelve si la variable es un integer o no. Existen otras funciones llamadas is_integer y is_long, pero son el alias de is_int().
Documentación oficial: ES
Ejemplos
Ejemplo 1
$numero_entero = 6;
Ejemplo 2
$numero_entero = 6; if(is_int($numero_entero)){ echo "Es integer."; }else{ echo "No es integer."; }
Ejemplo 3
if(is_integer($numero_entero)){ echo "Es integer."; }else{ echo "No es integer."; }
Ejemplo 4
if(is_long($numero_entero)){ echo "Es integer."; }else{ echo "No es integer."; }
Números de punto flotante (double)
El tipo de dato double (reales) contiene valores de números en coma flotante (con decimales) (1,45 3,89875 8,7724 3,14 etc).
En PHP existe una función que comprueba si una variable es de tipo float.
La funcion se llama is_float y devuelve si la variable es un float o no. Existe otra función llamada is_double, pero es el alias de is_float().
Documentación oficial: ES
Ejemplos
Ejemplo 1
$precio = 3.99; $monto = 12.0;
Ejemplo 2
$precio = 3.99; if(is_float($precio )){ echo "Es float."; }else{ echo "No es float."; }
Ejemplo 3
if(is_double($precio)){ echo "Es float."; }else{ echo "No es float."; }
Cadenas de caracteres (strings)
El tipo de datos string contiene cadenas de caracteres.
Ejemplo
$nombre = "Proyectos Beta";
Funciones de PHP
Funciones de strings en PHP: ES
is_string
En PHP existe una función que comprueba si una variable es de tipo string.
La funcion se llama is_string y devuelve si la variable es un string o no.
Documentación oficial: ES
Ejemplo
$nombre = "Proyectos Beta"; if(is_string($nombre )){ echo "Es string."; }else{ echo "No es string."; }
explode
Devuelve un array de string, siendo cada uno un substring del parámetro string formado por la división realizada por los delimitadores indicados en el parámetro string separator.
Documentación oficial de explode: ES
Descripción
explode(string $delimiter, string $string, int $limit = PHP_INT_MAX): array
Ejemplo
<?php $pizza = "porción1 porción2 porción3 porción4 porción5 porción6"; $porciones = explode(" ", $pizza); echo $porciones[0]; // porción1 echo $porciones[1]; // porción2
implode
Une elementos de un array en un string.
Documentación oficial de implode: ES
Descripción
implode(string $separator, array $array): string
Une los elementos de un array con el string separator.
Ejemplo
<?php $array = ['lastname', 'email', 'phone']; $unir = implode(",", $array); // string(20) "lastname,email,phone" echo $unir;
md5
Calcula el 'hash' md5 de un string.
Documentación oficial de md5: ES
Descripción
md5(string $str, bool $raw_output = false): string
Calcula el hash MD5 de str utilizando el Algoritmo MD5 Message-Digest de RSA Data Security, Inc. y devuelve ese hash.
Ejemplo
<?php $comida = 'chocolate'; if (md5($comida) === 'c378985d629e99a4e86213db0cd5e70d') { echo "Hash correcto!!!"; }
Muestra una cadena de texto.
Documentación oficial de print: ES
Descripción
print(string $arg): int
Print no es realmente una función (es un constructor de lenguaje) por lo tanto no es necesario usar paréntesis para indicar su lista de argumentos.
Ejemplo
<?php print("Hola mundo!!!<br/>"); print "print() también funciona sin paréntesis!!!";
str_split
Convierte un string en un array.
Documentación oficial de str_split: ES
Descripción
str_split(string $string, int $split_length = 1): array
Convierte un string en un array.
Ejemplo
<?php $cadena = "Hola mundo"; $array1 = str_split($cadena); $array2 = str_split($cadena, 3); print_r($array1); print_r($array2);
stripslashes
Quita las barras de un string con comillas escapadas.
Documentación oficial de stripslashes: ES
Descripción
stripslashes(string $str): string
Quita las barras de un string con comillas escapadas.
Ejemplo
<?php $cadena = "Tu nombre es O\'reilly?"; // Salida: Tu nombre es O'reilly? echo stripslashes($cadena);
strlen
Obtiene la longitud de un string.
Documentación oficial de strlen: ES
Descripción
strlen(string $string): int
Devuelve la longitud del string dado.
Ejemplo
<?php $cadena1 = 'abcdef'; echo "La longitud de la cadena1 es: " . strlen($cadena1); // La longitud de la cadena1 es: 6 echo "<br/>"; $cadena2 = ' ab cd '; echo "La longitud de la cadena2 es: " . strlen($cadena2); // La longitud de la cadena2 es: 7
strpos
Encuentra la posición de la primera ocurrencia de un substring en un string.
Documentación oficial de strpos: ES
Descripción
strpos(string $haystack, mixed $needle, int $offset = 0): mixed
Encuentra la posición numérica de la primera ocurrencia del needle en el string haystack.
Ejemplo
<?php $mystring = 'abc'; $findme = 'b'; $posicion = strpos($mystring, $findme); echo "La posición es: " . $posicion;
strtolower
Convierte un string a minúsculas.
Documentación oficial de strtolower: ES
Descripción
strtolower(string $string): string
Devuelve un string con todos los caracteres alfabéticos convertidos a minúsculas.
Ejemplo
<?php $cadena = "El campo es verde, per hace MUCHo Calor."; $cadena = strtolower($cadena ); echo $cadena ; // el campo es verde, per hace mucho calor.
strtoupper
Convierte un string a mayúsculas.
Documentación oficial de strtoupper: ES
Descripción
strtoupper(string $string): string
Devuelve el string con todos los caracteres alfabéticos convertidos a mayúsculas.
Ejemplo
<?php $cadena = "El campo es verde, per hace MUCHo Calor."; $cadena = strtoupper($cadena ); echo $cadena ; // EL CAMPO ES VERDE, PER HACE MUCHO CALOR.
substr
Devuelve parte de una cadena.
Documentación oficial de substr: ES
Descripción
substr(string $string, int $start, int $length = ?): string
Devuelve una parte del string definida por los parámetros start y length.
Ejemplo
<?php $cadena1 = substr("abcdef", 2); echo "La cadena1 es: " . $cadena1 . "<br/>"; // Devuelve "cdef" $cadena2 = substr("abcdef", -1); echo "La cadena2 es: " . $cadena2 . "<br/>"; // Devuelve "f" $cadena3 = substr("abcdef", -2); echo "La cadena3 es: " . $cadena3 . "<br/>"; // Devuelve "ef" $cadena4 = substr("abcdef", -3, 1); echo "La cadena4 es: " . $cadena4 . "<br/>"; // Devuelve "d"
trim
Elimina espacio en blanco (u otro tipo de caracteres) del inicio y el final de la cadena.
Documentación oficial de trim: ES
Descripción
trim(string $str, string $character_mask = " \t\n\r\0\x0B"): string
Esta función devuelve una cadena con los espacios en blanco eliminados del inicio y final del str. sin el segundo parámetro, trim() eliminará estos caracteres:
- " " (ASCII 32 (0x20)), espacio simple.
- "\t" (ASCII 9 (0x09)), tabulación.
- "\n" (ASCII 10 (0x0A)), salto de línea.
- "\r" (ASCII 13 (0x0D)), retorno de carro.
- "\0" (ASCII 0 (0x00)), el byte NUL.
- "\x0B" (ASCII 11 (0x0B)), tabulación vertical.
Ejemplo
<?php $text = "\t\tThese are a few words :) ... "; $binary = "\x09Example string\x0A"; $hello = "Hello World"; var_dump($text, $binary, $hello); print "\n"; $trimmed = trim($text); var_dump($trimmed); $trimmed = trim($text, " \t."); var_dump($trimmed); $trimmed = trim($hello, "Hdle"); var_dump($trimmed); $trimmed = trim($hello, 'HdWr'); var_dump($trimmed); // Elimina los caracteres de control ASCII al inicio y final de $binary // (from 0 to 31 inclusive) $clean = trim($binary, "\x00..\x1F"); var_dump($clean);
ucfirst
Convierte el primer caracter de una cadena a mayúsculas.
Documentación oficial de ucfirst: ES
Descripción
ucfirst(string $str): string
Devuelve una cadena con el primer caracter str en máyusculas, si el caracter es alfabético.
Ejemplo
<?php $cadena1 = 'hola mundo!!!'; $cadena1 = ucfirst($cadena1); echo "La cadena1 es: " . $cadena1 . "<br/>"; // Hola mundo!!! $cadena2 = 'HOLA MUNDO!!!!'; $cadena2 = ucfirst($cadena2); echo "La cadena2 es: " . $cadena2. "<br/>"; // HOLA MUNDO!!!! $cadena3 = ucfirst(strtolower($cadena2)); echo "La cadena3 es: " . $cadena3. "<br/>"; // Hola mundo!!!!
ucwords
Convierte a mayúsculas el primer caracter de cada palabra de una cadena.
Documentación oficial de ucwords: ES
Descripción
ucwords(string $str, string $delimiters = " \t\r\n\f\v" ): string
Devuelve una cadena con la primera letra de cada palabra de str convertida a mayúsculas, si el caracter es alfanumérico.
Ejemplo
<?php $cadena1 = 'hola mundo!!!'; $cadena1 = ucwords($cadena1); echo "La cadena1 es: " . $cadena1 . "<br/>"; // Hola Mundo!!! $cadena2 = 'HOLA MUNDO!!!!'; $cadena2 = ucwords($cadena2); echo "La cadena2 es: " . $cadena2. "<br/>"; // HOLA MUNDO!!!! $cadena3 = ucwords(strtolower($cadena2)); echo "La cadena3 es: " . $cadena3. "<br/>"; // Hola Mundo!!!!
Tipo compuestos
arrays (matriz)
Tipo de dato array que contiene conjunto de valores.
Los arrays o matrices en PHP pueden almacenar varios valores en una variable, como un mapa ordenado. Un mapa es un tipo de datos que asocia valores con claves. Este tipo se optimiza para varios usos diferentes.
Se puede emplear como:
- Un array
- Una lista (vector)
- Una tabla asociativa (tabla hash - una implementación de un mapa)
- Un diccionario
- Una colección
- Una pila
- Una cola
Ya que los valores de un array pueden ser otros arrays, también son posibles árboles y arrays multidimensionales.
Un array es una matriz/vector/arreglo que almacena valores de 3 maneras posibles dependiendo de su tipo. Los 3 diferentes tipos son:
- Array numérico indexado.
- Array asociativo.
- Array multidimendional (Matrices).
Documentación oficial de arrays en PHP: ES
Ejemplos
Ejemplo 1
Array con índice numérico o array indexados sin clave.
<?php $autos = array("Audi", "BMW", "Hundai", "Mercedes", "Ford", "Kia"); var_dump($autos);
Ejemplo 2
Un array asociativo, cuyos valores se asignan mediante claves.
<?php $array = array( "foo" => "bar", "bar" => "foo", ); // A partir de PHP 5.4 $array = [ "foo" => "bar", "bar" => "foo", ]; var_dump($array);
Ejemplo 3
Ejemplo con claves mixtas integer y string
<?php $array = array( "foo" => "bar", "bar" => "foo", 100 => -100, -100 => 100, ); var_dump($array);
Ejemplo 4
Con claves no en todos los elementos.
<?php $array = array( "a", "b", 6 => "c", "d", ); var_dump($array);
Ejemplo 5
Array bidimensional (multidimensional, se puede resumir como un array de arrays.
<?php $equipo_futbol = array( array("Rooney","Chicharito","Gigs"), array("Suarez"), array("Torres","Terry","Etoo") ); foreach($equipo_futbol as $equipo){ echo "En este equipo juegan: "; foreach($equipo as $jugador){ echo $jugador ." "; } echo "<br/>"; }
Ejemplo 6
Array tridimensional (multidimensional, en este caso con tres dimensiones.
<?php $datos = array( array( array(0, 0, 0), array(0, 0, 1), array(0, 0, 2) ), array( array(0, 1, 0), array(0, 1, 1), array(0, 1, 2) ), array( array(0, 2, 0), array(0, 2, 1), array(0, 2, 2) ) ); foreach($datos as $datos2){ foreach($datos2 as $datos3){ foreach($datos3 as $dato){ echo "$dato "; } echo "<br/>"; } echo "<br/>"; }
Funciones
Documentación oficial de las funciones de los arrays: EN
Documentación oficial de las funciones de los arrays: ES
is_array
En PHP existe una función que comprueba si una variable es de tipo array.
La función se llama is_array y devuelve si la variable es un array o no.
Documentación oficial: ES
Ejemplo
$autos = array("Audi", "BMW", "Hundai", "Mercedes", "Ford", "Kia"); if(is_array($autos)){ echo "Es array."; }else{ echo "No es array."; }
Ordenar
Documentacion de ordenamientos de arrays: ES
Ordenar - sort
Ordena un array de forma ascendente.
Documentación oficial de sort: ES
Descripción
sort(array &$array, int $sort_flags = SORT_REGULAR): bool
Esta función ordena un array. Los elementos estarán ordenados de menor a mayor cuando la función haya terminado.
Parámetros
- array: el array de entrada.
- sort_flags: el segundo parámetro opcional sort_flags puede ser usado para modificar el modo de ordenación usando estos valores:
Tipos de ordenación:
- SORT_REGULAR: compara elementos normalmente (no cambia los tipos).
- SORT_NUMERIC: compara elementos de forma numérica.
- SORT_STRING: compara elementos como cadenas.
- SORT_LOCALE_STRING: compara elementos como cadenas, basándose en la configuración regional en uso. Utiliza la configuración regional, la cual puede cambiarse usando setlocale().
- SORT_NATURAL: compara elementos como cadenas usando el "orden natural" de la misma forma que natsort().
- SORT_FLAG_CASE: se puede combinar (OR a nivel de bits) con SORT_STRING o SORT_NATURAL para ordenar cadenas de forma insensible a mayúsculas/minúsculas.
Ejemplo
<?php $frutas = array("limón", "naranja", "banana", "albaricoque"); sort($frutas); foreach ($frutas as $clave => $valor) { echo "frutas[" . $clave . "] = " . $valor . "\n"; }
// Salida: // frutas[0] = albaricoque // frutas[1] = banana // frutas[2] = limón // frutas[3] = naranja
Ordenar - rsort
Ordena un array en orden inverso.
Documentación oficial de rsort: ES
Descripción
rsort(array &$array, int $sort_flags = SORT_REGULAR): bool
Esta función ordena un array en orden inverso (mayor a menor).
Parámetros
- array: el array de entrada.
- sort_flags: el segundo parámetro opcional sort_flags puede ser usado para modificar el modo de ordenación usando estos valores:
Tipos de ordenación:
- SORT_REGULAR: compara elementos normalmente (no cambia los tipos).
- SORT_NUMERIC: compara elementos de forma numérica.
- SORT_STRING: compara elementos como cadenas.
- SORT_LOCALE_STRING: compara elementos como cadenas, basándose en la configuración regional en uso. Utiliza la configuración regional, la cual puede cambiarse usando setlocale().
- SORT_NATURAL: compara elementos como cadenas usando el "orden natural" de la misma forma que natsort().
- SORT_FLAG_CASE: se puede combinar (OR a nivel de bits) con SORT_STRING o SORT_NATURAL para ordenar cadenas de forma insensible a mayúsculas/minúsculas.
Ejemplo
<?php $frutas = array("limón", "naranja", "plátano", "manzana"); rsort($frutas); foreach ($frutas as $clave => $valor) { echo "frutas[" . $clave . "] = " . $valor . "\n"; }
// Salida: // frutas[0] = plátano // frutas[1] = naranja // frutas[2] = manzana // frutas[3] = limón
Ordenar - asort
Ordena un array asociativo y mantiene la asociación de índices.
Documentación oficial de asort: ES
Descripción
asort(array &$array, int $sort_flags = SORT_REGULAR): bool
Esta función ordena un array manteniendo la correlación de los índices del array con los elementos con los que están asociados. Esta función se utiliza principalmente para ordenar arrays asociativos en los que el orden es importante.
Observación
Si dos miembros se comparan como iguales, su orden relativo en el array ordenado será indefinido.
Parámetros
- array: el array de entrada.
- sort_flags: el segundo parámetro opcional sort_flags puede ser usado para modificar el modo de ordenación usando estos valores:
Tipos de ordenación:
- SORT_REGULAR: compara elementos normalmente (no cambia los tipos).
- SORT_NUMERIC: compara elementos de forma numérica.
- SORT_STRING: compara elementos como cadenas.
- SORT_LOCALE_STRING: compara elementos como cadenas, basándose en la configuración regional en uso. Utiliza la configuración regional, la cual puede cambiarse usando setlocale().
- SORT_NATURAL: compara elementos como cadenas usando el "orden natural" de la misma forma que natsort().
- SORT_FLAG_CASE: se puede combinar (OR a nivel de bits) con SORT_STRING o SORT_NATURAL para ordenar cadenas de forma insensible a mayúsculas/minúsculas.
Ejemplo
<?php $frutas = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"); asort($frutas); foreach ($frutas as $clave => $valor) { echo "frutas[" . $clave . "] = " . $valor . "\n"; }
// Salida: // frutas[c] = apple // frutas[b] = banana // frutas[d] = lemon // frutas[a] = orange
Ordenar - arsort
Ordena un array asociativo en orden inverso y mantiene la asociación de índices.
Documentación oficial de asort: ES
Descripción
arsort(array &$array, int $sort_flags = SORT_REGULAR): bool
Esta función ordena un array de manera que los índices del array mantienen su correlación con los elementos del array asociados.
Observación
Si dos miembros se comparan como iguales, su orden relativo en el array ordenado será indefinido.
Parámetros
- array: el array de entrada.
- sort_flags: el segundo parámetro opcional sort_flags puede ser usado para modificar el modo de ordenación usando estos valores:
Tipos de ordenación:
- SORT_REGULAR: compara elementos normalmente (no cambia los tipos).
- SORT_NUMERIC: compara elementos de forma numérica.
- SORT_STRING: compara elementos como cadenas.
- SORT_LOCALE_STRING: compara elementos como cadenas, basándose en la configuración regional en uso. Utiliza la configuración regional, la cual puede cambiarse usando setlocale().
- SORT_NATURAL: compara elementos como cadenas usando el "orden natural" de la misma forma que natsort().
- SORT_FLAG_CASE: se puede combinar (OR a nivel de bits) con SORT_STRING o SORT_NATURAL para ordenar cadenas de forma insensible a mayúsculas/minúsculas.
Ejemplo
<?php $frutas = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"); arsort($frutas); foreach ($frutas as $clave => $valor) { echo "frutas[" . $clave . "] = " . $valor . "\n"; }
// Salida: // frutas[a] = orange // frutas[d] = lemon // frutas[b] = banana // frutas[c] = apple
Ordenar - ksort
Ordena un array por clave.
Documentación oficial de ksort: ES
Descripción
ksort(array &$array, int $sort_flags = SORT_REGULAR): bool
Ordena un array por clave, manteniendo la correlación entre la clave y los datos. Esto es útil principalmente para arrays asociativos.
Parámetros
- array: el array de entrada.
- sort_flags: el segundo parámetro opcional sort_flags puede ser usado para modificar el modo de ordenación usando estos valores:
Tipos de ordenación:
- SORT_REGULAR: compara elementos normalmente (no cambia los tipos).
- SORT_NUMERIC: compara elementos de forma numérica.
- SORT_STRING: compara elementos como cadenas.
- SORT_LOCALE_STRING: compara elementos como cadenas, basándose en la configuración regional en uso. Utiliza la configuración regional, la cual puede cambiarse usando setlocale().
- SORT_NATURAL: compara elementos como cadenas usando el "orden natural" de la misma forma que natsort().
- SORT_FLAG_CASE: se puede combinar (OR a nivel de bits) con SORT_STRING o SORT_NATURAL para ordenar cadenas de forma insensible a mayúsculas/minúsculas.
Ejemplo
<?php $frutas = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple"); ksort($frutas); foreach ($frutas as $clave => $valor) { echo "frutas[" . $clave . "] = " . $valor . "\n"; }
// Salida: // frutas[a] = orange // frutas[b] = banana // frutas[c] = apple // frutas[d] = lemon
Ordenar - krsort
Ordena un array por clave en orden inverso.
Documentación oficial de ksort: ES
Descripción
krsort(array &$array, int $sort_flags = SORT_REGULAR): bool
Ordena un array por clave en orden inverso, manteniendo la correlación entre la clave y los datos. Esto es útil principalmente para arrays asociativos.
Parámetros
- array: el array de entrada.
- sort_flags: el segundo parámetro opcional sort_flags puede ser usado para modificar el modo de ordenación usando estos valores:
Tipos de ordenación:
- SORT_REGULAR: compara elementos normalmente (no cambia los tipos).
- SORT_NUMERIC: compara elementos de forma numérica.
- SORT_STRING: compara elementos como cadenas.
- SORT_LOCALE_STRING: compara elementos como cadenas, basándose en la configuración regional en uso. Utiliza la configuración regional, la cual puede cambiarse usando setlocale().
- SORT_NATURAL: compara elementos como cadenas usando el "orden natural" de la misma forma que natsort().
- SORT_FLAG_CASE: se puede combinar (OR a nivel de bits) con SORT_STRING o SORT_NATURAL para ordenar cadenas de forma insensible a mayúsculas/minúsculas.
Ejemplo
<?php $frutas = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple"); krsort($frutas); foreach ($frutas as $clave => $valor) { echo "frutas[" . $clave . "] = " . $valor . "\n"; }
// Salida: // frutas[d] = lemon // frutas[c] = apple // frutas[b] = banana // frutas[a] = orange
Ordenar - natsort
Comparar - array_diff
Calcula la diferencia entre arrays.
Documentación oficial de array_diff: ES
Descripción
array_diff(array $array1, array $array2, array $... = ?): array
Compara array1 con uno o más arrays y devuelve los valores de array1 que no estén presentes en ninguno de los otros arrays.
Parámetros
- array1: el array a comparar.
- array2: un array con el que comparar.
- ...: más arrays con los que comparar.
Valores devueltos
Devuelve un array que contiene todas las entradas de array1 que no están presentes en ninguna de los otros arrays.
Observación
Se observa que lo que compara son los valores.
Ejemplo 1
<?php $array1 = array("a" => "green", "red", "blue", "red", "violet"); $array2 = array("b" => "green", "yellow", "red"); $resultado = array_diff($array1, $array2); print_r($resultado);
Ejemplo 2
<?php $animales = array ( "gato" => "Michi", "perro" => "Rambo", "chimpancé" => "Monito", "papagayo" => "Laurita", "Carlos", "oso" => "Polar" ); $animales2 = array ( "perro" => "Rambo", "gato" => "Michi", "conejo" => "blanquito", "Monito" ); $diferencia = array_diff($animales, $animales2); var_dump($diferencia);
Comparar - array_diff_assoc
Calcula la diferencia entre arrays con un chequeo adicional de índices.
Documentación oficial de array_diff_assoc: ES
Descripción
array_diff_assoc(array $array1, array $array2, array $... = ?): array
Compara array1 con array2 y devuelve la diferencia, pero esta vez comparando values y keys. Se aceptan también más arrays.
Parámetros
- array1: el array a comparar.
- array2: un array con el que comparar.
- ...: más arrays con los que comparar.
Valores devueltos
Devuelve un array que contiene todos los valores de array1 que no están presentes en ninguno de los otros arrays.
Observación
Se observa que lo que compara son los valores.
Ejemplo 1
El par "a" => "green" está presente en ambos arrays y, por lo tanto, no está en la salida de la función. Al contrario, el par 0 => "red" está en la salida ya que en el segundo argumento "red" tiene una clave que es 1.
<?php $array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red"); $array2 = array("a" => "green", "yellow", "red"); $resultado = array_diff_assoc($array1, $array2); print_r($resultado);
Ejemplo 2
<?php $animales = array ( "gato" => "Michi", "perro" => "Rambo", "chimpancé" => "Monito", "papagayo" => "Laurita", "Carlos", "oso" => "Polar" ); $animales2 = array ( "perro" => "Rambo", "gato" => "Michi", "conejo" => "blanquito", "Monito", "Carlos", ); $diferencia = array_diff_assoc($animales, $animales2); var_dump($diferencia);
// Salida. // array(4) { // ["chimpancé"] => string(6) "Monito" // ["papagayo"] => string(7) "Laurita" // [0] => string(6) "Carlos" // ["oso"] => string(5) "Polar" // }
Unir - array_merge
Combina dos o más arrays.
Documentación oficial de array_merge: ES
Descripción
array_merge(array $array1, array $... = ?): array
Combina los elementos de uno o más arrays juntándolos de modo que los valores de uno se anexan al final del anterior. Retorna el array resultante.
Parámetros
- array1: array inicial a combinar.
- ...: lista variable de arrays para combinar.
Valores devueltos
Retorna el array resultante.
Observaciones
- Si los arrays de entrada tienen las mismas claves de tipo string, el último valor para esa clave sobrescribirá al anterior. Sin embargo, los arrays que contengan claves numéricas, el último valor no sobrescribirá el valor original, sino que será añadido al final.
- Los valores del array de entrada con claves numéricas serán renumeradas con claves incrementales en el array resultante, comenzando desde cero.
Ejemplo 1
<?php $array1 = array("color" => "red", 2, 4); $array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4); $resultado = array_merge($array1, $array2); print_r($resultado);
// Salida. // Array // ( // [color] => green // [0] => 2 // [1] => 4 // [2] => a // [3] => b // [shape] => trapezoid // [4] => 4 // )
Ejemplo 2
<?php $array1 = array(); $array2 = array(1 => "data"); $resultado = array_merge($array1, $array2); print_r($resultado);
// Salida. // Array // ( // [0] => data // )
Unir - array_merge_recursive
Une dos o más arrays recursivamente.
Documentación oficial de array_merge_recursive: ES
Descripción
array_merge_recursive(array $array1, array $... = ?): array
array_merge_recursive() une los elementos de uno o más arrays de modo tal que los valores de uno sean añadidos al final del anterior. Devuelve el array resultante.
Parámetros
- array1: array inicial a combinar.
- ...: Lista variable de arrays a unir recursivamente.
Valores devueltos
Un array de valores resultante de la unión de los argumentos.
Observaciones
- Si los arrays de entrada tienen las mismas claves de tipo string, los valores de estas claves son unidas en un array, y esto se realiza recursivamente, de modo que si uno de los valores es un array mismo, la función unirá también ésta con la correspondiente entrada de otro array.
- Si los arrays tienen la misma clave numérica, el valor posterior no sobrescribirá el valor original, sino que será añadido al final.
Ejemplo
<?php $m1 = array("color" => array("favorito" => "rojo"), 5); $m2 = array(10, "color" => array("favorito" => "verde", "azul")); $resultado = array_merge_recursive($m1, $m2); print_r($resultado);
// Salida. // Array // ( // [color] => Array // ( // [favorito] => Array // ( // [0] => rojo // [1] => verde // ) // // [0] => azul // ) // // [0] => 5 // [1] => 10 // )
Unir - array_combine
Crea un nuevo array, usando una matriz para las claves y otra para sus valores.
Documentación oficial de array_combine: ES
Descripción
array_combine(array $keys, array $values): array
Crea un array usando los valores del array keys como las keys y los valores del array values como los valores correspondientes.
Parámetros
- keys: array de las keys a usar. Cualquier valor inválido para la key será convertido a string.
- values: array de valores a usar.
Valores devueltos
Retorna el array combinado, false si el número de elementos de cada array no es igual.
Observaciones
- Arroja un E_WARNING si el número de elementos en keys y values no coincide.
Ejemplo
<?php $a = array('green', 'red', 'yellow'); $b = array('avocado', 'apple', 'banana'); $c = array_combine($a, $b); print_r($c);
// Salida. // Array // ( // [green] => avocado // [red] => apple // [yellow] => banana // )
Rellenar - array_fill
Llena un array con valores.
Documentación oficial de array_fill: ES
Descripción
array_fill(int $start_index, int $num, mixed $value): array
Llena un array con num entradas del valor del parámetro value, las keys inician en el parámetro start_index.
Parámetros
- start_index: el primer índice del array retornado. Si start_index es negativo, el primer índice del array retornado será start_index y los siguientes indices comenzarán desde cero.
- num: número de elementos a insertar. Debe ser mayor o igual que cero.
- value: valor a usar para el llenado.
Valores devueltos
Retorna el array llenado.
Observaciones
- Arroja un E_WARNING si num es menor que cero.
Ejemplo
<?php $a = array_fill(5, 6, 'banana'); $b = array_fill(-2, 4, 'pear'); print_r($a); print_r($b);
// Salida. // Array // ( // [5] => banana // [6] => banana // [7] => banana // [8] => banana // [9] => banana // [10] => banana // ) // // Array // ( // [-2] => pear // [0] => pear // [1] => pear // [2] => pear // )
Rellenar - range
Crear un array que contiene un rango de elementos.
Documentación oficial de range: ES
Descripción
range(mixed $start, mixed $end, number $step = 1): array
Crea un array que contiene un rango de elementos.
Parámetros
- start: primer valor de la secuencia.
- end: la secuencia finaliza al alcanzar el valor end.
- step: si se proporciona un valor a step, este será usado como el incremento entre los elementos de la secuencia. step debería darse como número positivo. Si no se especifica, el valor predeterminado de step será 1.
Valores devueltos
Devuelve un array de elementos desde start a end, inclusive.
Ejemplo 1
<?php // array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) foreach (range(0, 12) as $número) { echo $número; }
Ejemplo 2
<?php // El parámetro step // array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100) foreach (range(0, 100, 10) as $número) { echo $número; }
Ejemplo 3
<?php // Empleo de las secuencias de caracteres // array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'); foreach (range('a', 'i') as $letra) { echo $letra; }
Ejemplo 4
<?php // array('c', 'b', 'a'); foreach (range('c', 'a') as $letra) { echo $letra; }
Dividir - array_slice
Extraer una parte de un array.
Documentación oficial de array_slice: ES
Descripción
array_slice( array $array, int $offset, int $length = null, bool $preserve_keys = false ): array
array_slice() devuelve la secuencia de elementos del array array tal y como se especifica en los parámetros offset y length.
Parámetros
- array: el array de entrada.
- offset: si el índice dado por offset no es negativo, la secuencia empezará en esa posición del array. Si el offset es negativo, la secuencia empezará en esa posición empezando por el final del array.
- length: si la longitud dada por length es positiva, la secuencia tendrá hasta tantos elementos como indique el valor. Si el array es más corto que length, solamente estarán presentes los elementos disponibles del array. Si se proporciona length y es negativo, la secuencia finalizará en tantos elementos empezando por el final del array. Si se omite, entonces la secuencia contendrá todo el contenido desde offset hasta el final del array.
- preserve_keys: Observe que array_slice() reordenará y reinicializará los índices numéricos del array de forma predeterminada. Se puede cambiar esta comportamiento estableciendo el parámetro preserve_keys a true.
Valores devueltos
Devuelve la parte del array. Si el índice es mayor que el tamaño del array, devuelve un array vacío.
Ejemplo
<?php $entrada = array("a", "b", "c", "d", "e"); $salida = array_slice($entrada, 2); // Devuelve "c", "d", y "e" $salida = array_slice($entrada, -2, 1); // Devuelve "d" $salida = array_slice($entrada, 0, 3); // Devuelve "a", "b", y "c" // Observe las diferencias en las claves de los arrays. print_r(array_slice($entrada, 2, -1)); print_r(array_slice($entrada, 2, -1, true));
Dividir - array_splice
Extraer una parte de un array.
Documentación oficial de array_splice: ES
Descripción
array_splice( array &$input, int $offset, int $length = 0, mixed $replacement = array() ): array
Elimina los elementos designados por offset y length del array input, y los reemplaza con los elementos del array replacement, si se proporcionan.
Parámetros
- array: el array de entrada.
- offset: si el índice dado por offset es positivo, el inicio de la porción eliminada estará en ese índice desde el principio del array input. Si offset es negativo, se comienza desde el final del array input.
- length: si se omite la longitud dada por length, se elimina todo desde offset hasta el final del array. Si se especifica length y es positivo, se eliminarán tantos elementos como indique la longitud. Si se especifica length y es negativo, el final de la porción eliminada será de tantos elementos como indique la longitud desde el final del array. Si se especifica length y es cero, no se eliminará ningún elemento. Consejo: para eliminar todo desde offset hasta el final del array cuando también se especifique replacement, use count($input) para length.
- replacement: si se especifica el array replacement, los elementos eliminados serán reemplazados con los elementos de este array.
Valores devueltos
Devuelve un array que consiste en los elementos extraídos.
Observaciones
- Si offset y length son tales que no se elimina nada, los elementos del array replacement serán insertados en el lugar especificado por offset. Observe que las claves del array replacement no se preservan.
- Si replacement es sólo un elemento, no es necesario poner array() alrededor de él, a menos que el elemento sea un array, un objeto o null.
Ejemplo
<?php $entrada = array("rojo", "verde", "azul", "amarillo"); array_splice($entrada, 2); // $entrada ahora es array("rojo", "verde") $entrada = array("rojo", "verde", "azul", "amarillo"); array_splice($entrada, 1, -1); // $entrada ahora es array("rojo", "amarillo") $entrada = array("rojo", "verde", "azul", "amarillo"); array_splice($entrada, 1, count($entrada), "naranja"); // $entrada ahora es array("rojo", "naranja") $entrada = array("rojo", "verde", "azul", "amarillo"); array_splice($entrada, -1, 1, array("negro", "granate")); // $entrada ahora es array("rojo", "verde", "azul", "negro", "granate") $entrada = array("rojo", "verde", "azul", "amarillo"); array_splice($entrada, 3, 0, "púpura"); // $entrada ahora es array("rojo", "verde", "azul", "púpura", "amarillo");
Dividir - array_chunk
Divide un array en fragmentos.
Documentación oficial de array_chunk: ES
Descripción
array_chunk(array $array, int $size, bool $preserve_keys = false): array
Divide un array en arrays con elementos del tamaño definido en size. El último fragmento puede contener menos elementos que size.
Parámetros
- array: array para trabajar.
- size: el tamaño de cada fragmento.
- preserve_keys: cuando se establece en true las keys serán preservadas. El valor por defecto es false lo cual reindexará los fragmentos numéricamente.
Valores devueltos
Retorna un array multidimensional indexado numéricamente, comenzando desde cero, en el cual cada dimensión contiene la cantidad de elementos definida en size.
Observaciones
- Si size es inferior a 1, una E_WARNING será arrojada y null será retornado.
Ejemplo
<?php $input_array = array('a', 'b', 'c', 'd', 'e'); print_r(array_chunk($input_array, 2)); print_r(array_chunk($input_array, 2, true));
Modificar - array_shift
Quita un elemento del principio del array.
Documentación oficial de array_shift: ES
Descripción
array_shift(array &$array): mixed
array_shift() Quita el primer valor del array y lo devuelve, acortando el array un elemento y corriendo el array hacia abajo. Todas la claves del array numéricas serán modificadas para que empiece contando desde cero mientras que las claves literales no se verán afectadas.
Parámetros
- array: array de entrada.
Valores devueltos
Devuelve el valor quitado, o null si el array está vacío o no es un array.
Ejemplo
<?php $stack = array("naranja", "plátano", "manzana", "frambuesa"); $fruit = array_shift($stack); print_r($stack);
// Salida // Array // ( // [0] => plátano // [1] => manzana // [2] => frambuesa // )
Modificar - array_unshift
Añadir al inicio de un array uno a más elementos.
Documentación oficial de array_unshift: ES
Descripción
array_unshift(array &$array, mixed $... = ?): int
array_unshift() añade los elementos pasados al inicio de array. Observe que la lista de elementos se añade como un todo, por lo que los elementos añadidos permanecen en el mismo orden. Todas las claves numéricas del array serán modificadas empezando a contar desde cero mientras que las claves literales no serán cambiadas.
Parámetros
- array: array de entrada.
- ...: los valores a añadir al inicio.
Valores devueltos
Devuelve el nuevo número de elementos del array.
Ejemplo
<?php $cola = array("naranja", "banana"); array_unshift($cola, "manzana", "frambuesa"); print_r($cola);
// Salida // Array // ( // [0] => manzana // [1] => frambuesa // [2] => naranja // [3] => banana // )
Modificar - array_pop
Extrae el último elemento del final del array.
Documentación oficial de array_pop: ES
Descripción
array_pop(array &$array): mixed
array_pop() extrae y devuelve el último elemento del array, acortando el array con un elemento menos.
Parámetros
- array: el array de donde obtener el valor.
Valores devueltos
Devuelve el último elemento del array. Si el array está vacío (o no es un array), se devolverá null.
Observaciones
- Esta función arrojará un error de nivel E_WARNING cuando se invoca con algo distinto de un array.
Ejemplo
<?php $stack = array("naranja", "plátano", "manzana", "frambuesa"); $fruit = array_pop($stack); print_r($stack);
// Salida // Array // ( // [0] => naranja // [1] => plátano // [2] => manzana // )
Modificar - array_push
Inserta uno o más elementos al final de un array.
Documentación oficial de array_push: ES
Descripción
array_push(array &$array, mixed $value1, mixed $... = ?): int
array_push() trata a un array como si fuera una pila y coloca la variable que se le proporciona al final del array. El tamaño del array será incrementado por el número de variables insertados. Tiene el mismo efecto que:
<?php $array[] = $var;
Repetiendo por cada valor proporcionado.
Parámetros
- array: el array de entrada.
- value1: el primer valor a colocar al final de array.
Valores devueltos
Devuelve el nuevo número de elementos del array.
Observaciones
- Si se utiliza array_push() para añadir un solo elemento al array, es mejor utilizar $array[] = ya que de esta forma no existe la sobrecarga de llamar a una función.
- array_push() generará una advertencia si el primer argumento no es un array. Esto difiere del comportamiento de $var[] donde se creará un nuevo array.
Ejemplo
<?php $pila = array("naranja", "plátano"); array_push($pila, "manzana", "arándano"); print_r($pila);
// Salida // Array // ( // [0] => naranja // [1] => plátano // [2] => manzana // [3] => arándano // )
object
Un objeto es una estructura de datos que contiene propiedades (lo que normalmente se considera datos) y métodos (funciones que nos permite manipular las propiedades del objeto).
Ejemplo
<?php class Car { function get_color() { echo "El car es blanco"; } } // Inicializar un objeto. $auto = new Car(); echo $auto->get_color();
Funciones
En PHP existe una función que comprueba si una variable es de tipo object.
La función se llama is_object y devuelve si la variable es un object o no.
Documentación oficial: ES
Ejemplo
<?php class Car { function get_color() { echo "El car es blanco"; } } // Inicializar un objeto. $auto = new Car(); if(is_object($auto)){ echo "Es un object."; }else{ echo "No es un object."; }
callable
Los tipos callable son cualquier cosa que se puede llamar como una devolución de llamada. Las cosas que pueden denominarse "devolución de llamada" son las siguientes:
- Funciones anonimas.
- Funciones estándar de PHP (no construcciones de lenguaje).
- Clases estáticas.
- Clases no estáticas (usando una sintaxis alternativa).
- Objetos específicos / Métodos de clase.
- Los objetos mismos, siempre que el objeto se encuentre en la clave 0 de una matriz.
iterable
Tipo especiales
Resource
Un recurso es un tipo especial de variable que hace referencia a un recurso externo, como un archivo, socket, flujo, documento o conexión.
Ejemplos
Ejemplo 1
La función mysqli_connect() abre una nueva conexión al servidor de MySQL.
<?php $conn = mysqli_connect("127.0.0.1", "root", "", "test"); var_dump($conn);
Observación
La variable $conn se puede reasignar posteriormente con otro recurso o con el valor NULL.
Ejemplo 2
Ejemplo en Microsoft Windows
<?php $file = fopen('C:\Windows\System32\drivers\etc\hosts', 'r'); echo gettype($file); # Out: resource echo "<br/>"; echo $file; # Out: Resource id #3
Ejemplo en GNU/Linux
<?php $file = fopen('/etc/passwd', 'r'); echo gettype($file); # Out: resource echo "<br/>"; echo $file; # Out: Resource id #3
Sub tipos de recursos
Hay diferentes (sub) tipos de recursos. Puede verificar el tipo de recurso usando get_resource_type()
Ejemplos
Ejemplo 1 en Microsoft Windows
<?php $file = fopen('C:\Windows\System32\drivers\etc\hosts', 'r'); echo get_resource_type($file); #Out: stream
Ejemplo 2 en GNU/Linux
<?php $file = fopen('/etc/passwd', 'r'); echo get_resource_type($file); #Out: stream
Ejemplo 3
<?php $sock = fsockopen('www.google.com', 80); echo get_resource_type($sock); #Out: stream
Observación
- Puede encontrar una lista completa de los tipos de recursos incorporados EN.
NULL
Tipo de dato NULL que es un valor que indica ausencia de valor.
Una variable puede ser nula por tres razones:
- Se le asignó un valor NULL.
- No se le asignó aún ningún valor.
- Se anuló con la función unset()
La asignación de NULL tiene esta sintaxis:
<?php $var = NULL;
Operadores
Operadores aritméticos
Documentación oficial de los operadores aritméticos: ES
Suma
Suma: $a + $b
Ejemplo
<?php $numero1 = 6; $numero2 = 2; $suma = $numero1 + $numero2; echo "La suma es: " . $suma; // 8
Resta
Resta: $a – $b
Ejemplo
<?php $numero1 = 6; $numero2 = 2; $resta = $numero1 - $numero2; echo "La resta es: " . $resta; // 4
Multiplicación
Multiplicación: $a * $b
Ejemplo
<?php $numero1 = 3; $numero2 = 5; $multiplicacion = $numero1 * $numero2; echo "La multiplicación es: " . $multiplicacion; // 15
División
División: $a / $b
Ejemplo
<?php $numero1 = 10; $numero2 = 2; $division = $numero1 / $numero2; echo "La división es: " . $division; // 5
Resto de una división
Resto de una división: $a % $b
Ejemplo
<?php $numero1 = 10; $numero2 = 2; $resto = $numero1 % $numero2; echo "El resto es: " . $resto; // 0
Incremento
++ sirven para incrementar una unidad el valor de la variable. Dependiendo de dónde se coloquen (antes o después de la variable) el resultado del cálculo puede diferir debido al momento en que se ejecuta la adición de la unidad.
Pre-incremento
Incremento: ++$a
Incrementa $a en uno y luego devuelve $a.
Ejemplo
<?php $numero1 = 4; echo "El valor de numero1 es: " . ++$numero1; // 5
Post-incremento
Incremento: $a++
Devuelve $a y luego incrementa $a en uno.
Ejemplo
<?php $numero1 = 4; echo "El valor de numero1 es: " . $numero1++; // 4
Decremento
-- sirven para decrementar una unidad el valor de la variable. Dependiendo de dónde se coloquen (antes o después de la variable) el resultado del cálculo puede diferir debido al momento en que se ejecuta la resta de la unidad.
Pre-decremento
Decremento: --$a
Decrementa $a en uno y luego devuelve $a.
Ejemplo
<?php $numero1 = 4; echo "El valor de numero1 es: " . --$numero1; // 3
Post-decremento
Decremento: $a--
Devuelve $a y luego decrementa $a en uno.
Ejemplo
<?php $numero1 = 4; echo "El valor de numero1 es: " . $numero1--; // 4
Operadores condicionales
Documentación oficial de operadores condicionales: ES
Menor que (<)
Menor que: $a < $b
Ejemplo
<?php $a = 3; $b = 8; if($a < $b){ echo "$a es menor a $b"; }else{ echo "$a no menor a $b"; }
Mayor que (>)
Mayor que: $a > $b
Ejemplo
<?php $a = 8; $b = 3; if($a > $b){ echo "$a es mayor a $b"; }else{ echo "$a no mayor a $b"; }
Menor o igual que (<=)
Menor o igual que: $a <= $b
Ejemplo
<?php $a = 8; $b = 11; if($a <= $b){ echo "$a es menor o igual a $b"; }else{ echo "$a no menor o igual a $b"; }
Mayor o igual que (>=)
Mayor o igual que: $a >= $b
Ejemplo
<?php $a = 11; $b = 8; if($a >= $b){ echo "$a es mayor o igual a $b"; }else{ echo "$a no mayor o igual a $b"; }
Igual que (==)
Igual que: $a == $b
Es true si $a es igual a $b, no importa el tipo de dato.
Ejemplos
Ejemplo 1
<?php $a = 11; $b = "11"; if($a == $b){ echo "$a es igual a $b"; }else{ echo "$a no es igual a $b"; }
Idéntico que (===)
Igual que: $a === $b.
Es true si $a es igual a $b, y son del mismo tipo.
Ejemplos
Ejemplo 1
<?php $a = 11; $b = 11; if($a === $b){ echo "$a es idéntico a $b"; }else{ echo "$a no es idéntico a $b"; }
Ejemplo 2
<?php $a = 11; $b = "11"; if($a === $b){ echo "$a es idéntico a $b"; }else{ echo "$a no es idéntico a $b"; }
Diferente que (!=) o (<>)
Existen dos tipos:
- !=
- <>
!=
Diferente $a != $b
Es true si $a no es igual a $b, pero sin comparar el tipo de dato.
Ejemplo
<?php $a = 11; $b = 13; if($a != $b){ echo "$a es diferente a $b"; }else{ echo "$a no es diferente a $b"; }
<>
Diferente $a <> $b
Es true si $a no es igual a $b, pero sin comparar el tipo de dato.
Ejemplo
<?php $a = 11; $b = 13; if($a <> $b){ echo "$a es diferente a $b"; }else{ echo "$a no es diferente a $b"; }
No idéntico que (!==)
Igual que: $a !== $b.
Es true si $a no es igual a $b, o si no son del mismo tipo.
Ejemplo
<?php $a = 11; $b = "11"; if($a !== $b){ echo "$a no es idéntico a $b"; }else{ echo "$a es idéntico a $b"; }
Estructuras de control
Un programa PHP se ejecuta en principio de forma secuencial, desde la primera instrucción hasta la última y de una en una (secuencialmente línea por línea). Las estructuras de control permiten modificar este flujo, eligiendo entre instrucciones alternativas o repitiendo instrucciones.
Tipos
if ... elseif ... else ...
if
La construcción if le permite ejecutar un fragmento de código si la expresión provista junto con ella se evalúa como verdadera (true).
Ejemplo
<?php $edad = 37; if($edad > 30){ echo "Tengo mas de 30 años!!!"; }
else
La construcción if, que le permite ejecutar un fragmento de código si la expresión se evalúa como verdadera. Por otro lado, si la expresión se evalúa como falsa, no hará nada.
Si desea ejecutar un fragmento de código diferente si la expresión se evalúa como falsa (false), se utiliza la palabra reservada else.
Siempre se utiliza la sentencia else junto con una sentencia if.
Ejemplo
<?php $edad = 25; if($edad > 30){ echo "Tengo mas de 30 años!!!"; }else { echo "Tengo menos de 30 años!!!"; }
elseif
La sentencia elseif es una extensión de la construcción if-else. Si tiene más de dos opciones para elegir, puede usar la declaración elseif.
Ejemplo
<?php $edad = 25; if($edad < 30){ echo "Tengo menos de 30 años!!!"; }elseif ($edad > 30 && $edad < 40) { echo "Tengo entre 30 a 40 años!!!"; }elseif ($edad > 40 && $edad < 50) { echo "Tengo entre 40 a 50 años!!!"; }elseif ($edad > 50 && $edad < 60) { echo "Tengo entre 50 a 60 años!!!"; }else{ echo "Tengo mas de 60 años!!!"; }
switch
switch es como una serie de sentencias if. Se utiliza para comparar una misma variable o expresión con valores diferentes y ejecutar un código diferente a otro dependiendo de esos valores.
Observaciones
- Cuando una sentencia case coincide con el valor de la sentencia switch, PHP ejecuta el código dentro del case. PHP sigue ejecutando las sentencias hasta el final o hasta que choca con un break. Si se omite break, swith ejecutará todos los cases restantes cuando encuentra uno que cumpla con la condición.
- En caso de que no haya ningún case válido, puede utilizarse default, para ejecutar algo cuando no se cumplen los case.
- En los cases sólo se permiten tipos simples: int, float y string. Los arrays y objetos pueden utilizarse si se muestran como un tipo simple.
Ejemplos
Ejemplo 1
<?php $i = 0; switch($i) { case 0: echo "i es igual a 0"; break; case 1: echo "i es igual a 1"; break; default: echo "i no es ni 0 ni 1"; }
Ejemplo 2
<?php $i = 3; switch($i) { case 0: case 1: case 2: echo "i es igual a $i"; break; case 3: echo "i es igual a 3"; break; default: echo "i no es ni 0 ni 1 ni 2 ni 3"; }
Bucle while
Se ejecutan las sentencias dentro del while siempre y cuando se evalúen como true. El valor de la expresión se comprueba cada vez al inicio del loop, y la ejecución no se detendrá hasta que finalice la iteración (cada vez que PHP ejecuta las sentencias en un loop es una iteración). Si la expresión while se evalúa como false, las sentencias no se ejecutarán ni siquiera una vez.
Ejemplo
<?php $i = 1; while($i <= 10){ echo $i; $i++; }
Bucle do ... while
Es muy similar a los loops while, simplemente aquí la expresión para el loop se verifica al final en lugar de al principio, esto garantiza que el código se ejecute por lo menos la primera vez.
Ejemplo
<?php $i = 0; do { echo $i; } while ($i > 0);
Bucle for
$i = 1; $i <= 10; $i++
Observaciones
- Las expresiones o conjunto de expresiones van separadas por punto y coma ; y sólo hay 3.
- La primera expresión, $i = 1, se ejecuta una vez incondicionalmente al comienzo del bucle.
- La segunda expresión, $i <= 10, es una condición, si es true, se ejecutará la tercera expresión.
- La tercera expresión, $i++, es la acción a realizar si se cumple la segunda expresión.
- Cada una de las expresiones pueden estar vacías o contener múltiples expresiones. Si la expresión 2 está vacía, el loop será definido como true.
Ejemplo
<?php for($i = 1; $i <= 10; $i++) { echo $i; }
Bucle foreach
foreach permite una forma fácil de iterar sobre arrays u objetos.
Cuando foreach inicia su ejecución, el puntero apunta directamente al primer elemento del array.
Ejemplos
Ejemplo 1
<?php $array = array(1, 2, 3, 4); // Devuelve directamente el value // de cada key, comenzando desde // el primero. foreach ($array as $value) { echo $value . " - "; }
Ejemplo 2
<?php $frutas = array( "manzana" => 1, "pera" => 5, "uva" => 3, ); // Devuelve directamente el value // de cada key, comenzando desde // el primero. foreach ($frutas as $key => $value) { echo "La $key tiene $value unidades<br/>"; }
Funciones
Las funciones o procedimientos son una característica en PHP por el cual, podemos asignar un nombre a una porción de código para luego llamarla más tarde. Las funciones permiten pasarle unas variables a esa porción de código o incluso que ese código devuelva información al lugar donde se le llamó.
Las funciones son uno de los mecanismos que dispone la programación para saltarse la programación secuencial.
Documentación oficial de funciones en PHP: ES
Ventajas
- Podemos saltarnos el orden natural de ejecución de código (secuencial) para llamar a las funciones que pueden estar creadas en el mismo fichero o en otros.
- Nos permiten lograr un código mucho más organizado. Tendremos porciones de código declaradas una sola vez, y podemos utiliarlas en cualquier lado, sin repetir esa funcionalidad.
- Si los nombres de las funciones son lo suficientemente claros, no nos hará falta colocar comentarios.
- Simplifican nuestro código, haciéndolo más legible y fácil de mantener.
Crear funciones
Para crear una función en PHP se necesita utilizar la palabra reservada function con un nombre que la va a identificar, para luego poder utilizarla.
function nombre_de_mi_funcion() { // Líneas de código que pertenecen a la función. }
Observaciones
- Cualquier código PHP puede aparecer dentro de una función, incluso en otras funciones y definiciones de clases.
- Los nombres de las funciones siguen las mismas reglas que las demás etiquetas de PHP. Un nombre de función válido comienza con una letra o guion bajo, seguido de cualquier número de letras, números o guiones bajos.
- Las funciones pueden contener parámetros de entrada, pero no son obligatorias.
- Las funciones pueden devolver o no valores.
Ejemplos
Ejemplo 1
Este ejemplo no tiene parámetros en la función como tampoco devuelve un valor.
<?php function saludo(){ echo "Bienvenido Proyectos Beta.\n"; } saludo();
Ejemplo 2
<?php function saludo($nombre){ $result = "Me llamo $nombre"; return $result; } $nombre = saludo("Luis"); echo $nombre;
Extras
- El problema de las comillas
- Break
- Include y require - Qué son, diferencias y cómo usarlos
- Extending and implementation
- HTTP request