PHP en 20 pasos
PHP es un lenguaje de programación de uso general que se ejecuta del lado del servidor y que fue diseñado originalmente para el desarrollo web de contenido dinámico. En este artículo he reunido más de 20 pasos con ejemplos cortos para repasar lo básico del lenguaje.
1. Instalación
brew install php
2. Programa
En PHP debes crear un archivo con la extensión .php, por ejemplo: hola_mundo.php
<?php
echo 'Hola mundo';
?>
3. Comentarios
// Esto es un comentario
/*
Esto es un comentario
de varias líneas
*/
4. Constantes
define('PI', 3.1416);
5. Variables
$nombre = 'Juan';
$edad = 20;
$estatura = 1.80;
$esMayor = true;
6. Operadores de asignación
$d = 10;
$d += 2; // 12
$d -= 2; // 10
$d *= 2; // 20
$d %= 6; // 4
7. Operadores relacionales
$a = 10;
$b = 20;
$a == $b; // False
$a != $b; // True
8. Operadores lógicos
$a = 10;
$b = 20;
$a == 10 && $b == 20; // True
$a == 10 || $b == 20; // True
$a == 10 && $b == 30; // False
$a == 10 || $b == 30; // True
!$a == 10; // False
9. Operadores de incremento y decremento
$a = 10;
$a++; // 11
$a--; // 10
++$a; // 11
--$a; // 10
10. Operadores de comparación
$a = 10;
$b = 20;
$a <=> $b; // -1
$b <=> $a; // 1
$a <=> $a; // 0
11. Operadores de cadena
$a = 'Hola';
$b = 'Mundo';
$a . $b; // HolaMundo
$a .= $b; // HolaMundo
12. Operadores de arreglo
Ten en cuenta que el operador + entre arreglos hace una unión por claves: si ambos arreglos tienen las mismas claves (como en este ejemplo, 0, 1 y 2), se conservan los valores del primero. Para concatenar arreglos indexados se usa array_merge.
$a = [1, 2, 3];
$b = [4, 5, 6];
$a + $b; // [1, 2, 3, 4, 5, 6]
$a == $b; // False
$a === $b; // False
$a != $b; // True
$a <> $b; // True
$a !== $b; // True
13. Funciones
function suma($a, $b) {
return $a + $b;
}
suma(1, 2); // 3
14. Condicionales
$a = 10;
$b = 20;
if ($a > $b) {
echo 'a es mayor que b';
} else if ($a < $b) {
echo 'a es menor que b';
} else {
echo 'a es igual a b';
}
15. Ciclos
$a = 10;
$b = 20;
while ($a < $b) {
echo $a;
$a++;
}
do {
echo $a;
$a++;
} while ($a < $b);
for ($i = 0; $i < 10; $i++) {
echo $i;
}
$a = [1, 2, 3];
foreach ($a as $valor) {
echo $valor;
}
foreach ($a as $clave => $valor) {
echo $clave . ' - ' . $valor;
}
16. Arreglos
$a = [1, 2, 3];
$a = array(1, 2, 3);
$a = array(
'clave1' => 'valor1',
'clave2' => 'valor2',
'clave3' => 'valor3'
);
$a = [
'clave1' => 'valor1',
'clave2' => 'valor2',
'clave3' => 'valor3'
];
17. If ternario
$a = 10;
$b = 20;
$resultado = $a > $b ? 'a es mayor que b' : 'a es menor que b';
18. If Else
$a = 10;
$b = 20;
if ($a > $b) {
echo 'a es mayor que b';
} else {
echo 'a es menor que b';
}
19. Switch
$a = 10;
switch ($a) {
case 1:
echo 'a es igual a 1';
break;
case 2:
echo 'a es igual a 2';
break;
default:
echo 'a es diferente de 1 y 2';
}
20. Funciones
function suma($a, $b) {
return $a + $b;
}
suma(1, 2); // 3
21. Funciones anónimas
$suma = function($a, $b) {
return $a + $b;
};
$suma(1, 2); // 3
22. Funciones recursivas
function factorial($n) {
if ($n == 0) {
return 1;
} else {
return $n * factorial($n - 1);
}
}
factorial(5); // 120
23. Funciones con parámetros por defecto
function suma($a, $b = 0) {
return $a + $b;
}
suma(1); // 1
suma(1, 2); // 3
24. Funciones con parámetros variables
function suma(...$numeros) {
$resultado = 0;
foreach ($numeros as $numero) {
$resultado += $numero;
}
return $resultado;
}
suma(1, 2, 3, 4, 5); // 15
25. POO
class Persona {
public $nombre;
public $apellido;
public $edad;
public function __construct($nombre, $apellido, $edad) {
$this->nombre = $nombre;
$this->apellido = $apellido;
$this->edad = $edad;
}
public function saludar() {
return 'Hola, mi nombre es ' . $this->nombre . ' ' . $this->apellido;
}
}
$persona = new Persona('Juan', 'Perez', 20);
$persona->saludar(); // Hola, mi nombre es Juan Perez
26. POO Herencia
class Persona {
public $nombre;
public $apellido;
public $edad;
public function __construct($nombre, $apellido, $edad) {
$this->nombre = $nombre;
$this->apellido = $apellido;
$this->edad = $edad;
}
public function saludar() {
return 'Hola, mi nombre es ' . $this->nombre . ' ' . $this->apellido;
}
}
class Estudiante extends Persona {
public $carrera;
public function __construct($nombre, $apellido, $edad, $carrera) {
parent::__construct($nombre, $apellido, $edad);
$this->carrera = $carrera;
}
public function saludar() {
return 'Hola, mi nombre es ' . $this->nombre . ' ' . $this->apellido . ' y estudio ' . $this->carrera;
}
}
$estudiante = new Estudiante('Juan', 'Perez', 20, 'Ingeniería');
$estudiante->saludar(); // Hola, mi nombre es Juan Perez y estudio Ingeniería