Diferencia entre revisiones de «PHP básico»
Línea 325: | Línea 325: | ||
<?php | <?php | ||
$cadena = "Hola mundo"; | $cadena = "Hola mundo"; | ||
$array1 = str_split($cadena); | $array1 = str_split($cadena); | ||
$array2 = str_split($cadena, 3); | $array2 = str_split($cadena, 3); | ||
print_r($array1); | print_r($array1); | ||
print_r($array2); | print_r($array2); |
Revisión del 05:59 24 ago 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.
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
Funciones de PHP
Funciones de strings en PHP: ES
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!!!\n"); 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
Documentación oficial de stripslashes: ES
strlen
Documentación oficial de strlen: ES
strpos
Documentación oficial de strpos: ES
strtolower
Documentación oficial de strtolower: ES
strtoupper
Documentación oficial de strtoupper: ES
strtr
Documentación oficial de strtr: ES
substr
Documentación oficial de substr: ES
trim
Documentación oficial de trim: ES
ucfirst
Documentación oficial de ucfirst: ES
ucwords
Documentación oficial de ucwords: ES
Ejemplos
Ejemplo 1
$nombre = "Proyectos Beta";
Ejemplo 2
$nombre = "Proyectos Beta"; if(is_string($nombre )){ echo "Es string."; }else{ echo "No es string."; }
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", ];
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
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."; }
Para ordenar arrays
sort
asort
ksort
Para modificar arrays
array_push
unset
Extras
count
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).
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
Ejemplos
Ejemplo 1
<?php class Car { function get_color() { echo "El color car es blanco"; } } // Inicializar un objeto. $auto = new Car(); echo $auto->get_color();
Ejemplo 2
<?php class Car { function get_color() { echo "El color 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 asignacion de NULL tiene esta sintaxis:
<?php $var = NULL;
Operadores
Operadores aritméticos
Suma
Suma: $a + $b
Resta
Resta: $a – $b
Multiplicación
Multiplicación: $a * $b
División
División: $a / $b
Resto de una división
Resto de una división: $a % $b
Incremento
Incremento: $a++
Decremento
Decremento: $b--
Operadores de comparación
Menor que
Menor que: $a < $b
Mayor que
Mayor que: $a > $b
Menor o igual que
Menor o igual que: $a <= $b
Mayor o igual que
Mayor o igual que: $a >= $b
Igual que
Igual que: $a == $b
Distinto que
Distinto que $a != $b
Estructuras de control
Funciones
Clases
Constantes
Es posible definir valores constantes en función de cada clase manteniéndola invariable. Las constantes se diferencian de las variables comunes en que no utilizan el símbolo $ al declararlas o emplearlas. La visibilidad predeterminada de las constantes de clase es public.
Observaciones:
- Las constantes de clase están asignadas una vez por clase, y no por cada instancia de la clase.
Ejemplos
Definición y uso de una constante
<?php class MiClase { const CONSTANTE = 'valor constante'; function mostrarConstante() { echo self::CONSTANTE . "\n"; } } echo MiClase::CONSTANTE . "\n"; $nombreclase = "MiClase"; echo $nombreclase::CONSTANTE . "\n"; // A partir de PHP 5.3.0 $clase = new MiClase(); $clase->mostrarConstante(); echo $clase::CONSTANTE."\n"; // A partir de PHP 5.3.0 ?>
Interfaces
Excepciones
Namespaces
Los namespaces o espacios de nombres permiten crear aplicaciones complejas con mayor flexibilidad evitando problemas de conflictos entre clases y mejorando la legibilidad del código. Un namespace no es más que un directorio para clases, traits, interfaces, funciones y constantes. Se crean utilizando la palabra reservada namespace al principio del archivo, antes que cualquier otro código, a excepción de la estructura de control declare.
Documentación oficial de namespaces ES
Ejemplos
Ejemplo 1
Un archivo llamado MiClase.php
<?php // Directorio: Proyecto/Prueba/MiClase.php namespace Proyecto\Prueba; class MiClase { public function __construct(){ echo "Hola, soy MiClase."; } }
Otro archivo llamado Test.php que utiliza el namespace Proyecto\Prueba;
<?php include_once ('MiClase.php'); use Proyecto\Prueba\MiClase as miClase; $miClase = new miClase();
Type Hint
Desde PHP 5 es posible utilizar el type hinting (determinación de tipos) que permite especificar el tipo de datos que se espera de un argumento en la declaración de una función. Cuando se llama a la función, PHP comprobará si los argumentos son del tipo especificado, y si no lo son, se emitirá un error y la ejecución se detendrá.
Los tipos soportados son:
- Arrays
- Clases
- Interfaces
- Callables
- Bool
- Float
- Int
- Iterable
- Object
- Self
- String
- Void
Ejemplos
Ejemplo 1
class ChocolateAmargo { public $calorias = 520; } class Persona { public $energia; public function comerChocolateAmargo (ChocolateAmargo $chocolateAmargo) { $this->energia += $chocolateAmargo->calorias; } public function mostrarEnergia(){ return "Energía actual: " . $this->energia . "
"; } } $josego = new Persona; $desayuno = new ChocolateAmargo; $josego->comerChocolateAmargo($desayuno); $josego->comerChocolateAmargo($desayuno); echo $josego->mostrarEnergia(); // Devuelve: Energía actual 1040
En el ejemplo, hemos forzado a que el argumento que se pasa a la función comerChocolateAmargo() sea un objeto de la clase ChocolateAmargo. Si el $desatuyno no fuera un objeto de la clase ChocolateAmargo, no se podría emplear la función comerChocolateAmargo() y arrojaría un error.
Ejemplo 2
class Persona { public $energiaMedia; public $comidas; public function calcularEnergia(array $comidas){ $numeroComidas = count($comidas); $energiaTotal = $numeroComidas * $this->energiaMedia; return $energiaTotal; } } $josego = new Persona; // Energía media que proporciona cada comida: $josego->energiaMedia = 480; // Total de comidas: $comidas = array("Desayuno", "Almuerzo", "Comida", "Cena"); // Calcular la energía: echo $josego->calcularEnergia($comidas); // Devuelve 1920
La función calcularEnergia() exige que el argumento sea un array. Si cambiamos el argumento y ponemos un integer, nos dará un error.
Extras
- El problema de las comillas
- Break
- Include y require - Qué son, diferencias y cómo usarlos
- Extending and implementation
- HTTP request