PHP (Hypertext Preprocessor) es un lenguaje de programación de propósito general, diseñado principalmente para el desarrollo web.
Se ejecuta en el servidor y genera HTML dinámico para el cliente.
Instalación y configuración
Instalar PHP en Windows
Visita php.net/downloads y descarga la última versión de PHP para Windows.
Instalar PHP en Linux
Instala PHP en un sistema Linux usando apt
.
sudo apt update
sudo apt install php
Verificar versión de PHP
Comprueba la versión de PHP instalada.
php -v
Ejecutar un script PHP desde terminal
Puedes ejecutar scripts PHP directamente desde la línea de comandos.
php script.php
Introducción
Sintaxis básica de PHP
Un script PHP se incluye entre etiquetas <?php ... ?>
en un archivo .php
.
<?php
echo "¡Hola, mundo!";
?>
Comentarios en PHP
Puedes agregar comentarios con //
, #
o /* */
para comentarios en bloque.
// Comentario de una línea
# Comentario de una línea
/* Comentario
de varias líneas */
Variables y tipos de datos
Declaración de variables
Las variables en PHP se declaran con el signo $
seguido del nombre de la variable.
$variable = "valor";
Tipos de datos en PHP
PHP es un lenguaje débilmente tipado. Los principales tipos de datos son:
int
(enteros)float
(números decimales)string
(cadenas de texto)bool
(booleano)array
object
Ver tipo de variable
Utiliza gettype()
para verificar el tipo de una variable.
echo gettype($variable);
Conversión de tipos
Para convertir un tipo de dato a otro explícitamente, se usa el casting.
$entero = (int) "10"; // Convertir string a entero
Operadores en PHP
Operadores aritméticos
PHP soporta los operadores básicos de suma, resta, multiplicación y división.
$a + $b; // Suma
$a - $b; // Resta
$a * $b; // Multiplicación
$a / $b; // División
$a % $b; // Módulo
Operadores de comparación
Compara dos valores. Retornan true
o false
.
$a == $b; // Igual
$a === $b; // Igual y del mismo tipo
$a != $b; // Diferente
$a !== $b; // Diferente y distinto tipo
$a > $b; // Mayor que
$a < $b; // Menor que
Operadores lógicos
Se utilizan para realizar operaciones lógicas.
$a && $b; // AND lógico
$a || $b; // OR lógico
!$a; // Negación
Estructuras de control
Condicionales: if, else, elseif
PHP utiliza if
, else
y elseif
para controlar el flujo del programa.
if ($a > $b) {
echo "$a es mayor que $b";
} elseif ($a == $b) {
echo "$a es igual a $b";
} else {
echo "$a es menor que $b";
}
Switch case
Para evaluar múltiples condiciones.
$color = "rojo";
switch ($color) {
case "rojo":
echo "El color es rojo";
break;
case "azul":
echo "El color es azul";
break;
default:
echo "Color desconocido";
}
Bucles
Los bucles permiten ejecutar un bloque de código repetidamente.
For
for ($i = 0; $i < 10; $i++) {
echo $i;
}
While
$i = 0;
while ($i < 10) {
echo $i;
$i++;
}
Foreach
$array = array(1, 2, 3, 4);
foreach ($array as $valor) {
echo $valor;
}
Funciones
Definir una función
Las funciones en PHP se definen con la palabra clave function
.
function suma($a, $b) {
return $a + $b;
}
echo suma(2, 3); // Imprime 5
Funciones anónimas y callback
PHP también permite definir funciones anónimas.
$anonima = function($nombre) {
return "Hola, " . $nombre;
};
echo $anonima("Mundo"); // Imprime "Hola, Mundo"
Parámetros por referencia
Los parámetros pueden pasarse por referencia usando &
.
function incrementar(&$numero) {
$numero++;
}
$a = 5;
incrementar($a);
echo $a; // Imprime 6
Manejo de Arrays
PHP tiene varios tipos de arrays: indexados y asociativos.
Array indexado
Un array en PHP se puede crear con la función array()
o con []
.
<?php
$frutas = ["manzana", "banana", "naranja"];
echo $frutas[0]; // manzana
?>
Array asociativo
Un array asociativo utiliza claves en lugar de índices numéricos.
<?php
$persona = ["nombre" => "Luis", "edad" => 21];
echo $persona["nombre"]; // Luis
?>
Recorrer arrays
Usa foreach
para recorrer arrays.
foreach ($array as $valor) {
echo $valor;
}
Funciones útiles para arrays
PHP incluye varias funciones integradas para trabajar con arrays.
- Agregar elemento al final del array
array_push($array, "nuevo");
- Eliminar el último elemento
array_pop($array);
- Contar elementos del array
echo count($array);
Programación Orientada a Objetos (POO)
Clases y objetos
PHP soporta la programación orientada a objetos con clases, objetos, herencia y más.
class Persona {
public $nombre;
public function __construct($nombre) {
$this->nombre = $nombre;
}
public function saludar() {
echo "Hola, soy " . $this->nombre;
}
}
$persona = new Persona("Luis");
$persona->saludar(); // Imprime "Hola, soy Luis"
Herencia
Las clases pueden heredar de otras clases.
class Estudiante extends Persona {
public $carrera;
public function __construct($nombre, $carrera) {
parent::__construct($nombre);
$this->carrera = $carrera;
}
public function estudiar() {
echo $this->nombre . " está estudiando " . $this->carrera;
}
}
$estudiante = new Estudiante("Ana", "Ingeniería");
$estudiante->estudiar(); // Imprime "Ana está estudiando Ingeniería"
Encapsulamiento
El acceso a las propiedades y métodos puede controlarse con modificadores de acceso public, private, protected.
class Persona {
private $edad;
public function setEdad($edad) {
$this->edad = $edad;
}
public function getEdad() {
return $this->edad;
}
}
Interfaces
Las interfaces permiten definir qué métodos deben implementar las clases.
interface Figura {
public function area();
}
class Cuadrado implements Figura {
public $lado;
public function __construct($lado) {
$this->lado = $lado;
}
public function area() {
return $this->lado * $this->lado;
}
}
Formularios
Obtener datos de un formulario
PHP puede manejar datos enviados (GET/POST) por un formulario HTML.
// Obtener datos con método POST
$nombre = $_POST['nombre'];
// Obtener datos con método GET
$edad = $_GET['edad'];
Validación de datos
Validar datos es esencial para la seguridad.
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Correo válido";
} else {
echo "Correo inválido";
}
Sanitizar datos
Se usa para limpiar entradas y prevenir ataques de inyección.
$nombre = filter_var($_POST['nombre'], FILTER_SANITIZE_STRING);
Sesiones y cookies
Iniciar sesión
Las sesiones permiten almacenar datos en el servidor entre peticiones.
session_start();
$_SESSION['usuario'] = 'Luis';
Cerrar sesión
Destruye todas las variables de sesión.
session_destroy();
Cookies
Las cookies permiten almacenar datos en el navegador del usuario.
setcookie("usuario", "Luis", time() + 3600);
Leer cookies
Para obtener el valor de una cookie.
echo $_COOKIE['usuario'];
Manejo de archivos
Leer un archivo
Utiliza fopen
, fread
, o file_get_contents
para leer archivos.
<?php
$contenido = file_get_contents("archivo.txt");
echo $contenido;
?>
Escribir en un archivo
Usa fwrite
para escribir en archivos.
<?php
$archivo = fopen("archivo.txt", "w");
fwrite($archivo, "Nuevo contenido");
fclose($archivo);
?>
Conexión a bases de datos
Conectar a una base de datos MySQL
Usa mysqli
para conectar a una base de datos.
<?php
$conn = new mysqli("localhost", "usuario", "contraseña", "base_datos");
if ($conn->connect_error) {
die("Conexión fallida: " . $conn->connect_error);
}
?>
Realizar consultas SQL
Ejecuta una consulta SQL y obtiene resultados.
<?php
$resultado = $conn->query("SELECT * FROM usuarios");
while ($fila = $resultado->fetch_assoc()) {
echo $fila["nombre"];
}
?>
Cerrar conexión
Siempre cierra la conexión después de terminar.
<?php
$conn->close();
?>
Conectar a una base de datos MySQL usando PDO
PHP usa PDO para conectarse a bases de datos.
try {
$pdo = new PDO('mysql:host=localhost;dbname=mi_base', 'usuario', 'password');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->query("SELECT * FROM tabla");
while ($row = $stmt->fetch()) {
echo $row['columna'];
}
} catch (PDOException $e) {
echo "Error: " . $e->getMessage();
}
Errores y depuración
Mostrar errores
Configura PHP para mostrar todos los errores durante el desarrollo.
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
?>
Registrar errores en un archivo
Registra los errores en un archivo de log.
<?php
ini_set("log_errors", 1);
ini_set("error_log", "/ruta/error_log.txt");
?>