PHP Introducción
PHP Introducción
PHP Introducción
Introducción
1. Introducción al PHP.
2. Características del lenguaje.
3. Instalación de PHP, Apache y MySQL.
Introducción
1. Introducción al PHP
PHP: es un lenguaje de programación de código abierto que se ejecuta del lado del servidor, cuyo
nombre es un acrónimo recursivo de “PHP: HypertextPreprocessor” que es PHP: Preprocesador
de hipertexto.
¿Cómo trabaja PHP? PHP es un lenguaje tipo script (donde el código es interpretado por otro
programa e tiempo de ejecución, en lugar de ser compilado por el procesador del PC) de alto nivel
que se ejecuta dle lado del servidor. En el caso de PHP el intérprete viene a ser el programa
servidor como Apache 2 o NGINX, es el programa servidor quien interpreta las instrucciones del
script. Sin embargo, existen lenguajes tipo script, como Javascript cuyo intérprete es el navegador
web del usuario cliente.
Los lenguajes de programación que requieren de un proceso de compilación dictan instrucciones
directas al hardware del ordenador, estos luego de ser compilados, generan un fichero en lenguaje
máquina al cual se denomina como compilado, y es este fichero quien dicta instrucciones directas
al hardware del ordenador, en cambio los lenguajes tipo script como es el caso de PHP, envían
instrucciones a un programa 3º, el intérprete, y es éste el que envía las instrucciones al ordenador.
1. PHP es totalmente independiente de una plataforma, funciona con los principales sistemas
operativos (Windows, Linux, MAC OS,...) y admite la mayoría de los servidores web,
principalmente Apache y IIS.
2. PHP permite uso de programación procedimental como orientada a objetos.
3. Cuenta con soporte a una amplia gama de bases de datos, como MySQL, Oracle,
PostgreSQL,... bien sea usando ODBC, una capa de abstracción como PDO, o
especificando una extensión de base de datos.
4. Posee soporte para comunicación con otros servicios mediante protocolos como HTTP,
LDAP, SNMP, NNTP, IMAP, POP3, incluso para Java y arquitecturas de objetos distribuidos
(COM y CORBA).
5. También cuenta con soporte para el manejo de sockets, generación de documentos PDF,
creación de imágenes.
6. Permite fácil generación de cualquier tipo de texto como XHTML o cualquier tipo de fichero
XML además de que cuenta con un sistema de ficheros donde éstos pueden ser
guardados en una caché del servidor.
7. PHP cuenta con una de las comunidades de desarrolladores más fértiles del mundo del
desarrollo web, son innumerables la cantidad de herramientas y frameworks de código
abierto disponibles para quien desee desarrollar proyectos con este lenguaje.
Un lenguaje tipo script sólo puede ser ejecutado desde el lado del servidor. FALSO.
Los lenguajes compilados son interpretados en tiempo de ejecución. FALSO.
Tanto PHP como Javascript son lenguajes tipo script, estos sólo pueden ser ejecutados desde un
programa servidor como por ejemplo Apache 2. FALSO.
Los lenguajes tipo script necesitan de un intérprete para enviar instrucciones al ordenador.
VERDADERO.
Para poder instalar paquetes o programas en una distribución de Linux es necesario ser usuario
administrador o en su defecto pertenecer al grupo sudoers. VERDADERO
El programa intérprete de Javascript es el navegador web, es por esto que se denomina a PHP
como un lenguaje del lado del servidor y a Javascript como un lenguaje del lado del cliente.
Instalación PHP:
- En ambiente Windows: XAMPP y WampServer son excelentes para principiantes o
personas que desean construir algo realmente rápido y tienen menos experiencia con
entornos PHP y Apache. Al instalarlos, obtiene un entorno de desarrollo “listo para usar”
que incluye: PHP, Apache, MySQL. Sin embargo, en la mayoría de los casos, podría estar
interesado en instalar solo PHP, para usarlo en diferentes entornos de desarrollo.
- Paso 5. En variables del sistema, haga clic en Nuevo y agregue PHPRC para el nombre y
D:\PHP para el valor de esta nueva variable del sistema. Haga clic en Aceptar y luego
Aceptar nuevamente. El siguiente paso a ejecutar será reiniciar el PC.
- Paso 6. Una vez que esté reiniciado su ordenador, se procede a verificar si PHP se instaló
correctamente. Para ello abra la terminal de Windows cmd. Ejecute php -v y debería ver
una salida similar, dependiendo de la versión de PHP que haya instalado. Ahora sí está
instalado completamente PHP en el ordenado bajo ambiente Windows.
Instalación de Apache:
Apache Server es un servidor web multiplataforma y de código abierto considerado el más popular
que existe gracias a su estabilidad y seguridad, de hecho, es el servidor de referencia de PHP.
Fue lanzado oficialmente en el año 1995 y sigue siendo desarrollado o mantenido por Apache
Software Foundation. En las siguientes pantallas se describen la serie de pasos a seguir para su
descarga e instalación en los sistemas operativas Windows y Linux (distribución Ubuntu).
- Paso 1. Descargar última versión estable 2.4.41, coloque en el navegador la web oficial de
Apache Server: https://httpd.apache.org/download.cgi. Apache httpd para Microsoft
Windows está disponible en varios proveedores externos → Files for Microsoft Windows
(Archivos para Microsoft Windows).
- Paso 2. Seleccione uno de los sitios web que proporcionan una distribución binaria (ej:
Apache Lounge). Redirigido a https://www.apachelounge.com/download/ proceda a
seleccionar la versión de Apache 2.4.41 según el que necesite su PC. Dentro de la carpeta
C:/ copie el archivo .zip descargado y descomprímalo alli.
- Paso 3. Una vez que se descomprime el archivo se necesitará configurar Apache para que
detecte la instalación de PHP. Para ello ubique el fichero httpd.conf dentro del directorio
C:\Apache24\conf y edite el contenido con un editor de texto para agregar en él la siguiente
configuración:
Configuración
# Custom php.ini file, because it's important to have a different file than the command-line.
PHPIniDir "C:\PHP/php-apache.ini"
# And the default config to make Apache run PHP for PHP files.
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch ".+\.phps$">
SetHandler application/x-httpd-php-source
Require all denied
</FilesMatch>
<FilesMatch "^\.ph(p[345]?|t|tml|ps)$">
Requirealldenied
</FilesMatch>
- Paso 4. Abra la terminal de Windows cmd (ejecutar como administrador) y navegue hacia
el directorio c: / Apache24/bin. A continuación agregue Apache como un servicio de
Windows con el siguiente comando: httpd.exe -k install -n “Apache HTTP Server”
- Paso 5. Abra los Servicios de Windows e inicie el Servidor Apache HTTP y eEn el archivo
httpd.conf que se encuentra en la carpeta C:\Apache24\conf debe que la línea donde se
define el ServerName esté descomentada y modificar por: ServerName localhost:80
En ambiente Linux: De igual forma que con la instalación PHP esta guía explicará únicamente el
proceso de instalación en el sistema Debian o sus derivados. Tam ién se recuerda la necesidad de
contar con privilegios de administrador, por lo que debe revisar si su usuario es root o se
encuentra dentro de la lista de sudoers.
- Paso 1. Ejecutar el comando: sudo apt-get update
- Paso 2. Ejecutar el comando: sudo apt-getinstall apache2 → Presiona “Y” cuando la
consola pregunte por confirmación. Una vez terminada la instalación, la configuración por
defecto de apache la vas a encontrar en /etc/apache2/sites-available/000-default.conf
- Pasi 3. Apache nos crea un directorio en /var/www/html/, el servidor local de la
configuración por defecto de apache, apunta a este directorio, donde está el fichero
index.html por defecto de apache, este archivo puede ser renderizado en la ruta
http://localhost
Instalar MySQL:
Windows: En el navegador buscar https://dev.mysql.com/downloads/ → ir a MySQLInstaller for
Windows. Se encontrará con 2 opciones de descarga de MySQL. Una corresponde a la versión de
la comunidad web, la cual sólo descargará el servidor, pero puede seleccionar otras aplicaciones
(como Workbench) según lo desee. La 2ª opción es una versión completa, la cual descargará el
servidor y todas las aplicaciones adicionales recomendadas. También le pedirá que cree una
cuenta de usuario, pero puede omitir esta parte desplazándose hacia abajo y haciendo clic en “No
thanks, just start my download”
Si se conecta a Internet mientras instala MySQL, puede elegir la versión de instalación en línea
mysql-installer-web-community- <versión> .exe. </versión> y en caso de que desee instalar
MySQL sin conexión, puede descargar el archivo mysql-installer-community- <versión> .exe.
Para conectar MySQLWorkbench al servidor local de base de datos se debe crear una conexión
como se muestra a continuación.
Configuración
Para poder hacer todos los ejemplos de código PHP del curso: visual studio code -
https://code.visualstudio.com/ . Se puede usar para HTML5, PHP, CSS3 y Javascript con
complementos Python, C++,...
1. ¿Qué significa instanciar una clase? Crear un objeto a partir de la clase.
2. ¿Qué significa sobrecargar (overload) un método? Crear un método con el mismo nombre
pero diferentes argumentos.
3. ¿Cómo creamos la instancia de una nueva clase? NO ES new Clase (Nombre_objeto).
4. En PHP, al subir un fichero, ¿qué posición de $_FILES almacena el tipo MIME del fichero
subido? NO es Ext
5. En PHP, la sentencia de control foreach se emplea para: NO ES Recorrer ni buscar los
elementos de un array
6. En PHP, ¿qué hace la sentencia continue? Salta a la siguiente iteración en el bucle for,
foreach, while o do-while actual
7. ¿Qué es un objeto? Una entidad con un conjunto de atributos, capaz de realizar unas
acciones.
8. ¿Qué es abstracción? Hace un objeto a la hora de definirlo y establecer sus relaciones con
otros objetos.
9. ¿Con PHP es obligatorio el uso de la sentencia else en un if? NO, el else es opcional.
10. En PHP, para buscar un elemento en un array se puede emplear: NO ES search ()
11. HTTP: Protocolo de Transmisión de Hipertexto.
12. ¿Qué tipo de bucles se pueden definir con el lenguaje PHP? do…while, while, for,
foreach…in.
13. Polimorfismo: Es una de las características de la POO. Y expresa la posibilidad de que uno
mismo mensaje, invoque o ejecute métodos distintos siendo enviado a objetos distintos.
14. En PHP, ¿qué método proporciona la extensión mysqli que no existe en mysql?
mysqli_connect_error()
15. Cuando se crea una cookie, ¿cuál es la duración o fecha de caducidad por defecto? Hasta
que el navegador web se cierre
16. ¿Cómo se define una variable de tipo string en PHP? string str;
17. En PHP, cuando se abre un fichero, ¿qué opción abrirá el fichero para sólo escritura y
colocará el puntero al final del fichero? NO es r+.
Editor de código: editor de texto diseñado específicamente para editar el código fuente de
programas informáticos. Los editores de código fuente tienen características diseñadas para
simplificar y acelerar la escritura de código fuente, como resaltado de sintaxis, autocompletar y
pareo de llaves. Algunos editores de código fuente verifican la sintaxis a medida que el
programador escribe, alertando inmediatamente sobre los problemas de sintaxis que pueda surgir.
- Notepad ++: Editor de código fuente gratuito y un reemplazo del Bloc de notas tradicional,
que admite varios idiomas. https://notepad-plus-plus.org/
- NetBeans: Destaca el código fuente de forma sintáctica y semántica, le permite organizar
fácilmente el código, con una variedad de herramientas útiles y poderosas.
https://netbeans.apache.org/
- Visual Studio Community: Un completo IDE extensible y gratuito para crear aplicaciones
modernas para Windows, Android e iOS, además de apk web y servicios en la nube.
https://visualstudio.microsoft.com/es/vs/community/ → MÁS completo y free.
- Visual Studio Code: Puede depurar código directamente desde el editor. Podemos instalar
extensiones para agregar nuevos idiomas, temas, depuradores y para conectarse a
servicios adicionales. https://code.visualstudio.com/
- PHPStorm: https://www.jetbrains.com/phpstorm/
XAMPP: paquete de software que nos ayuda a instalar PHP, Apache y MySQL en un proceso
relativamente sencillo que sirve para cualquier sistema operativo. https://www.apachefriends.org/
Para ejecutar PHP xampp_start.exe → siempre abierto el host este, no cerrar. Si cierro la consola
mi ordenador ya no sabe php, así que no podrá acceder a la página.
En local host: los archivos php que nosotros hagamos tiene que estar dentro de la carpeta htdoc.
Hacemos en esa carpeta una carpeta “aula2” → Todo lo que hagamos irá aquí.
Vamos a Visual Studio Code y buscamos la carpeta.
Luego creamos un archivo desde el programa dentro de esta carpeta “index.php”.
Ponemos código.
Azul: comando // Verde: comentario // Azul claro/cian: variables // Lila: forma de crear array //
Amarillo: echo (mensajes).
En Array con opciones de menú ha creado un menú con opciones y luego una función para crear
menú (que va creando, usando html, un listado [con la etiqueta “ul”] que vamos recorriendo con
foreach y la etiqueta “li” cada uno de los elementos del array). Fuera de la función hay una
llamada a que se ejecute dicha función.
Para comprobar que funciona localhost/aula2 → si entro a esta web abriendo el fichero me tiene
que aparecer algo así:
2. Sintaxis PHP
2.1 Sintaxis PHP5: Introducción
2.2 Características del lenguaje
2.3 Memoria y sus tipos
2.4. Estructuras de control
2.5 Funciones
La sintaxis de PHP viene del lenguaje C principalmente, pero otros lenguajes como Perl y Java
han tenido influencia significativa en la misma, sobre todo gracias a la incorporación de la
programación orientada a objetos. Aun cuando elementos de otros lenguajes han sido
incorporados la sintaxis de PHP, ésta sigue siendo de fácil uso y entendimiento. La extensión
predeterminada para archivos PHP es “.php”.
Dentro de los ficheros .php el intérprete del lenguajes buscará por las etiquetas de apertura y
cierre de php. Éste ejecutará el código contenido dentro de dichas etiquetas. Todo el texto que
esté fuera de ellas será reproducido por el intérprete tal cual esté sin alteración alguna.
Cada script PHP está compuesto de declaraciones, como llamadas a funciones, asignaciones de
variables, salida de datos, directivas, entre otros elementos. Excepto en muy pocos casos, cada
una de estas instrucciones debe terminarse, al igual que en C, Perl y JavaScript, con un punto y
coma; por ejemplo, la última instrucción antes de una etiqueta de cierre no requiere un punto y
coma pero son excepciones casi peculiaridades en la lógica del analizador y debe terminar sus
instrucciones con punto y coma.
<?php alguna_instruccion();
$variable = ‘valor’;?>
Ambos tipos de comentarios de una sola línea, // y #, pueden terminarse usando una nueva línea
(\ r, \ n o \ r \ n) o terminando el bloque PHP actual usando la etiqueta de cierre de PHP. También
puede usar comentarios para omitir partes de una línea de código.
Bloques de código: serie de sentencias (puede ser una declaración y asignación de variable, un
bucle, una llamada a una función, y normalmente terminan con un punto y coma) o declaraciones
encerradas entre dos llaves. Para que un bloque sea útil, normalmente estará precedido con un
identificador de tipo de declaración: function, for, foreach, do, while, if, else, elseif o switch.
{
// Algunos comentarios
f(); // llamada a una función
}
Entero (int): datos int se usa para representar enteros con signo (tanto + como -). Los nº se
pueden declarar usando varias notaciones diferentes: Decimal, 10; -8; 1370. Tenga en cuenta que
no se necesitan miles de separadores (o, de hecho, permitidos). Octal0333, 0100. Identificada por
su cero inicial y utilizada principalmente para expresar permisos de acceso de estilo UNIX.
Hexadecimal 0x 123; 0XFF; -0x10- 0De base 16; tenga en cuenta que los dígitos hexadecimales y
el prefijo 0x inicial no distinguen entre mayúsculas y minúsculas. Binario 0b011; 0B010101;
-0b100. De base 2; tenga en cuenta que el cero es seguido por una B que no distingue entre
mayúsculas y minúsculas y, por supuesto, sólo se permiten 0s y 1s. Todos los nº no decimales se
convierten a decimales cuando se imprimen con el comando echo o print.
<?php
$x = 1243;
echo “Variable entera: ”.$x;
?>
Flotante (float o doble): los nº de coma flotante tienen un componente fraccional; como enteros,
también están firmados. PHP admite dos notaciones diferentes para expresarlas: Decima, l0.12;
1234.43; -.123, Notación decimal tradicional. Exponencial, 2E7, 1.2e2, Notación exponencial: un
conjunto de dígitos significativos (también llamado mantisa) seguido de la letra E que no distingue
entre mayúsculas y minúsculas y un exponente. El número resultante se expresa multiplicado por
diez a la potencia del exponente; por ejemplo, 1e2 es igual a 100. Ejemplo de declaración de una
variable de tipo float. La función PHP var_dump()devuelve el tipo de datos y el valor:
<?php
$a = 1.243;
$b = 4.5e6;
$c = 2E7;
?>
<?php
echo (int) ((0.1 + 0.9)*10);
?>
La expresión ((0.1 + 0.2) * 10) se evalúa a 3 (y, de hecho, si se imprime sin la conversión de
enteros, el lenguaje evalúa a 3). Sin embargo, la declaración anterior produce 2 en su lugar. Esto
sucede porque el resultado de esta simple expresión aritmética se almacena internamente como
2.999999 en lugar de 3; cuando el valor se convierte en int, PHP simplemente trunca la parte
fraccionaria, lo que resulta en un error bastante significativo (12.5%, para ser exactos).
Todo desarrollador debe conocer a profundidad las limitaciones del lenguaje con el que trabaja. En
el caso de que un proyecto requiera de un manejo preciso de números flotantes el equipo de
desarrollo deberá usar las funciones de precisión arbitrarias proporcionadas por la extensión
BCMath en lugar de los tipos de datos integrados de PHP.
Cadenas (Strings): colecciones ordenadas de datos binarios. Dicho de otro modo, una cadena es
información binaria representada en un formato específico. Una colección ordenada de datos
binarios puede ser usada para representar tanto a un simple contenido de texto como al contenido
de una imagen, al de una hoja de cálculo tipo CSV o incluso contenido de audio. PHP como
lenguaje proporciona una amplia gama de funcionalidades para manejar cadenas. Aunque existen
varias formas de delimitar cadenas de texto, como por ejemplo usando la sintaxis Heredoc y
Newdoc, las más comunes y utilizadas son las comillas simples (‘ ’) y las comillas dobles (“ “). Es
importante conocer bien el uso de las comillas ya que PHP las trata de manera distinta.
<?php
<?php
Código similar al anterior, salvo que se usaron cadenas de texto delimitadas con comillas simples.
Sin embargo, al imprimir con el comando echo la salida es distinta, ya que no se sustituyó el valor
de la variable $contenido como en el caso anterior, es decir, PHP no realizó la interpolación de la
variable.Para insertar valores de variables usando comillas simples se tendría que romper la
cadena de texto y concatenar con la variable usando el operador punto (.).
<?php
Carácteres de escape: Otra diferencia significativa a la hora de delimitar cadenas de texto con
comillas simples o dobles es el uso de los caracteres de escape, que al igual que las variables, no
se expandirán cuando estén incluidas dentro de una cadena con comillas simples. Se utilizan para
insertar símbolos dentro de las cadenas de texto, que pueden ser confundidos por el lenguaje. El
carácter barra invertida (\) se usa para especificar caracteres de escape. Su disponibilidad
depende del tipo de literal de cadena que se esté usando.
En el caso de los caracteres para cambio de línea y tabulaciones éstos sólo tienen efecto en el
código HTML creado y enviado al navegador cuando la página es ejecutada en el servidor y no en
el texto ejecutado por el navegador. Sólo se verán al examinar el código fuente producido al
ejecutar el script. Para que el texto ejecutado cambie de línea en el navegador se debe introducir
en el código la sentencia echo “<br”>.
La sintaxis de Heredoc y Nowdoc: PHP dispone de otra forma para declaración de cadenas
complejas, la sintaxis heredoc, cuya funcionalidad es similar a la de las comillas dobles (tanto las
variables como las secuencias de escape se interpolan). La diferencia es que está delimitada por
el operador especial <<< seguido de un identificados y una nueva línea. Luego se coloca la
cadena de texto (string) y para cerrarla se debe colocar el mismo identificador con la que se abrió,
opcionalmente seguido de un punto y coma (;) que es el único carácter especial permitido es la
línea de cierre.
Es importante destacar que el identificador de cierre debe comenzar en la 1ª columna de la nueva
línea, sin espacios en blanco, ni sangrías, ni tabulaciones antes o después del punto y coma, ya
que PHP no lo considerará válido y producirá un error de análisis en la última línea.
Los identificadores de heredoc deben seguir las mismas reglas de nomenclatura de las variables,
y distinguen entre mayúsculas y minúsculas. Por convención, los identificadores suelen estar en
mayúsculas. Debido a que heredoc utiliza un conjunto especial de tokens para encapsular la
cadena, es más fácil declarar cadenas que incluyen muchos caracteres de comillas dobles o
abarcan muchas líneas.
<?php
echo <<<TEXTO
Bienvenidos al, "Tutorial de $lenguaje"
TEXTO;
?>
La salida del código anterior será Bienvenidos al “Tutorial de PHP”. Observe cómo se ignoran los
caracteres de nueva línea justo después del token de apertura y al final de la cadena (antes del
token de cierre).
Por otra parte, en PHP5.3, se introdujo la nueva sintaxis de nowdoc, que tiene una funcionalidad
como las comillas simples. Es decir, no se realiza ninguna interpolación, y toda la cadena se
considera literal (se ignoran todas las secuencias $ y escape). Para usar nowdoc coloque el
operador <<< seguido del identificador que debe ir encerrado entre comillas simples:
<?php
$lenguaje = "PHP";
echo <<<’TEXTO’
Bienvenidos al, "Tutorial de $lenguaje"
TEXTO;
?>
Funciones de Cadenas: PHP provee una amplia lista de funciones para la manipulación de
cadenas de texto. Entre las más comúnmente utilizadas se encuentran:
A.strlen () → función para obtener la longitud de una cadena de bytes. Recibe como parámetro la
cadena (string) a ser evaluada. Se cuentan todos los caracteres de la cadena,
independientemente de su valor.
<?php
$texto1 = 'abcdef';
echo strlen($texto1); // imprime 6
$texto2 = ‘ Hola estudiantes ’;
echo strlen($texto2); // imprime 18 puesto que también cuenta los espacios en blanco.
?>
B. substr() → para obtener un fragmento de cada cadena de texto. Recibe como parámetros la
cadena seguido por el nº de posición (start) a partir del cual comenzará a contar, empezando
desde cero, para hacer la substracción del texto. Ambos parámetros van separados por una coma.
- Si el nº de posición se indica con un entero positivo, la cadena devuelta será a partir de
esa posición empezando desde cero. Si por el contrario de indica un entero negativo,
entonces la cadena devuelta será a partir del nº de posición indicada, la función retornará
un false.
- Existe un 3r parámetro, opcional, parara especificar la longitud de la cadena (length). Si
se indica y es positivo, la función retornará la cadena con un máximo de caracteres
determinado por dicha longitud, que comienza con el parámetro start. En el caso de que se
indique un valor de longitud negativo, se omite ese número de caracteres al final de la
cadena. Si el parámetro start indica la posición de truncamiento o un número mayor a éste,
entonces la función devolverá false.
- Si se omite la longitud, la subcadena comenzará por el nº de posición indicado hasta el
final de la cadena donde será devuelta. Si es especifica la longitud y es o FALSE o NULL
devolverá una cadena vacía.
<?php
C. trim() → la función elimina el espacio en blanco, u otros caracteres, del inicio y final de la
cadena de texto. Cabe destacar que también se cuenta con las funciones ltrim() y rtrim(), quienes
se encargan de hacer dicha eliminación al inicio o al final de la cadena de texto respectivamente.
Las 3 funciones reciben como parámetros la cadena de texto y una lista (opcional) que representa
los caracteres diferentes a un espacio en blanco que se desean eliminar.
<?php
$cadena = “ texto1 texto2 texto3 ”; //cadena con espacios en blanco al inicio y al final
/* Invocando a trim() */
$formato_cadena = trim($cadena); //aplico la función trim a $cadena
echo “La cadena quedó así: ‘“$formato_cadena”’; //imprime “texto1 texto2 texto3” sin los espacios
en blanco del inicio y el final.
/* Invocando a ltrim() */
$formato_cadena = ltrim($cadena);
echo “La cadena quedó así: ‘“$formato_cadena”’; //imprime “texto1 texto2 texto3 ” sin el espacio
en blanco del inicio.
/* Invocando a rtrim() */
$formato_cadena = rtrim($cadena);
echo “La cadena quedó así: ‘“$formato_cadena”’; //imprime “ texto1 texto2 texto3” sin el espacio
en blanco del final.
?>
D. strtolower() → función para convertir todos los caracteres de una cadena de texto en
minúscula.
<?php
E. strtoupper() → función para convertir todos los caracteres de una cadena de texto en
mayúscula.
<?php
F. strpos() → función para buscar un texto específico dentro de una cadena. Al igual que una
matriz de la cadena también asigna un valor de índice a los caracteres almacenados en ella,
comenzando desde cero. Si se encuentra una coincidencia, se devuelve la posición numérica de
la 1a ocurrencia, sino encuentra nada entonces devolverá FALSE. Recibe como parámetros el
string o cadena donde va a realizar la búsqueda, el texto a buscar (si no es un string, es
convertido a entero (integer) y se interpreta como el valor ordinal de un carácter), por último,
aunque es opcional, recibe un número de posición (llamado offset) a partir del cual se iniciará la
búsqueda contados desde el inicio de la cadena.
<?php
Se asignan en la variable $cadena la cadena de texto y en $pos el texto a buscar en ella. Luego
se pasan las variables como parámetros de la función strpos (). Pero también se puede hacer
directamente, pasando ambas cadenas en la función sin necesidad de almacenarlas en variables,
pero para dar mayor legibilidad al código se recomienda usar la 1a opción, sobretodo si la
cadena es muy grande.
Parámetro offset:
<?php
Hay muchas funciones más, pero estas son las más comunes, para más:
https://www.php.net/manual/es/ref.strings.php
Booleanos
Un dato booleano sólo puede contener uno de dos valores: verdadero o falso. Se usan como
base para operaciones lógicas. Al convertir datos hacia y desde el tipo booleano, se aplican reglas
especiales:
- Un número (entero o de coma flotante) convertido en booleano se convierte en falso si el
valor original es cero, o verdadero en caso contrario.
- Una cadena se convierte en falso sólo si está vacía o si contiene el carácter único o (cero).
Si contiene cualquier otro dato, incluso múltiples ceros, se convierte en verdadero.
- Cuando se convierte en un número o una cadena, un booleano se convierte en 1 si es
verdadero, o cero en caso contrario.
<?php
$variable = true; // declaración de una variable booleana a la que se le asigna true.
?>
Son contenedores de elementos ordenados; un arreglo se puede usar para almacenar y recuperar
cualquier otro tipo de datos, incluidos números, valores booleanos, cadenas, objetos e incluso
otras matrices. Para crear una matriz se debe utilizar la palabra clava array() y hay 3 tipos:
- Matrices indexadas
- Matrices asociativas
- Matrices multidimensionales
Matrices indexadas: matriz simple en la que los elementos de datos se almacenan en índices n.
Todos los elementos de la matriz están representados por un índice que es un valor numérico que
comienza en o (cero) para el 1r elemento de la matriz. Se puede crear:
- Índice automático: se puede asignar automáticamente (el índice siempre comienza en o)
<?php
$frutas = array(“Manzana”, “Pera”, “Mango”)
?>
- Índice manual:
<?php
$frutas[0] = "Manzana";
$frutas[1] = "Pera";
$frutas[2] = "Mango";
?>
<?php
$frutas = array("Manzana", "Pera", "Mango");
echo count($frutas); //SALIDA: 3
?>
Recorrer una matriz indexada de PHP: significa iterarla comenzando desde el 1r índice hasta el
último elemento de la misma. Para recorrer e imprimir todos los valores de una matriz indexada,
puede usar un bucle for o foreach:
- Estructura for: al usar el bucle for para atravesar una matriz indexada, debemos conocer
el tamaño / longitud de la matriz, que se puede encontrar usando la función count().
<?php
$frutas = array("Manzana", "Pera", "Mango");
$longitud = count($frutas); //se obtiene la longitud de la matriz
for($x = 0; $x < $longitud; $x++) {
echo $frutas[$x],;
} //SALIDA: Manzana, Pera, Mango,
?>
- Estructura foreach: mejor opción si tiene que atravesar toda la matriz, ya que no se tiene
que preocupar por calcular el tamaño de la matriz para recorrerla.
<?php
Los valores de índice numérico hacen que la matriz indexada sea más fácil de usar además de
que tener índices numéricos es común en casi todos los lenguajes de programación, por lo tanto,
también hace que el código sea más legible para otras personas que lo revisan.
Matrices asociativas: similar a la indexada pero en vez de almacenar datos secuencialmente con
índice numérico, cada valor puede asignarse con una clave de tipo cadena diseñada por el
usuario. También se puede hacer la matriz de dos formas:
<?php
$frutas = array("Manzana", "Pera", "Mango");
echo count($frutas); //SALIDA: 3
?>
o
<?php
$edad['Juan'] = "30";
$edad['Maria'] = "34";
$edad['Luis'] = "25";
?>
Para acceder a una matriz asociativa, se debe usar el nombre de la matriz junto con el índice del
elemento entre corchetes, con la diferencia de que el índice será una cadena y no un valor
numérico como en la matriz indexada.
<?php
$edad = array("Juan"=>"30", "Maria"=>"34", "Luis"=>"25");
echo "Juan tiene ".$edad['Juan']." años de edad.";
?>
- Estructura for: al usar el bucle para atravesar una matriz asociativa, debemos conocer el
tamaño / longitud de la matriz, que se puede encontrar utilizando la función count().
Además, como el índice en la matriz asociativa no es numérico ni secuencial, por lo tanto,
para encontrar los valores o las claves del índice (ya que los datos guardados en la matriz
asociativa tienen la forma de clave-valor), podemos usar la función array_keys() para
obtener una matriz de las claves usadas en la matriz asociativa.
<?php
$edad = array("Juan"=>"30", "Maria"=>"34", "Luis"=>"25");
$longitud = count($edad); //encontrar la longitud de la matriz
$clave = array_keys($edad); //obtener la clave de la matriz
for($i = 0; $i < $longitud; $i++) { echo $edad[$clave[$i]] . “ tiene ”.$clave[$i]. “ años. ”; }
?>
//SALIDA: Juan tiene 30 años. Maria tiene 34 años. Luis tiene 25 años.
- Estructura foreach:
<?php
$edad = array("Juan"=>"30", "Maria"=>"34", "Luis"=>"25");
foreach($edad as $x => $x_valor) { echo "Clave=" .$x.", Valor=".$x_valor."."; }
?>
//SALIDA: Clave= Juan, Valor=30. Clave= Maria, Valor=34. Clave=Luis, Valor=25.
El uso de una matriz asociativa otorga ciertas ventajas como el hecho de poder proporcionar
valores clave o de índice más significativos a los elementos de la matriz. También se puede
guardar más datos, ya que, al tener una cadena como clave para el elemento de matriz, se puede
tener datos asociados al valor que se almacenará, como en el ejemplo anterior donde se
almacenó la edad de cada persona como clave junto con el nombre de la persona como valor.
Matrices Multidimensionales: matriz que almacena otra matriz en cada índice en lugar de
almacenar un solo valor. Es una matriz de matrices. las matrices asociativas se almacenan dentro
de matrices multidimensionales. PHP comprende matrices multidimensionales que tienen dos,
tres, cuatro, cinco o más niveles de profundidad. Sin embargo, las matrices de más de tres niveles
de profundidad son difíciles de administrar para la mayoría de las personas.
<?php
$coches = array(
array(“nombre”=>“Rav4”, “tipo”=>“4x4 SUV”, “marca”=>“Toyota”),
array(“nombre”=>“Ranger”, “tipo”=>“Pick up”, “marca”=>“Ford”),
array(“nombre”=>“Auris”, “tipo”=>“Familiar”, “marca”=>“Toyota”));
?>
Para mostrar datos para el coche Rav4, primero hay que obtener la 1ª matriz dentro de nuestra
matriz multidimensional, a la que se puede acceder utilizando el índice o, y luego dentro de esta,
podemos mostrar todos los datos, como se hizo en matrices asociativas.
<?php
echo “Rav4 es un ”.$coches[0][“tipo”].“ fabricado por ”.coches[0][“marca”].“\n”;
echo “Ranger es un ”.$coches[1][“tipo”].“ fabricado por ”.coches[1][“marca”].“\n”;
?>
//SALIDA: Rav4 es un 4x4 SUV fabricado por Toyota
Ranger es un Pick up fabricado por Ford
Recorrer una matriz multidimensional → se puede usando dos bucles for o dos bucles foreach o
combinando un for y un foreach. Hay que atravesar la matriz principal y luego las matrices
almacenadas dentro de las matrices principales, por lo tanto, se necesitan dos bucles. Al usar el
bucle for para atravesar una matriz multidimensional, se debe conocer el tamaño / longitud de la
matriz, que se puede encontrar utilizando la función count().
<?php
$coches = array(
array(“nombre”=>“Rav4”, “tipo”=>“4x4 SUV”, “marca”=>“Toyota”),
array(“nombre”=>“Ranger”, “tipo”=>“Pick up”, “marca”=>“Ford”),
array(“nombre”=>“Auris”, “tipo”=>“Familiar”, “marca”=>“Toyota”));
$longitud = count($coches);
for($i0 =; $i < $longitud; $i++){ foreach($coches[$i] as $clave => $valor) { echo $clave.“ :
”.$valor.“.”;} }
?>
//SALIDA: nombre: Rav4. tipo: 4x4 SUV. marca: Toyota. nombre: Ranger. tipo: Pick up. marca:
Ford. nombre: Auris. tipo: Familiar. marca: Toyota.
En la matriz multidimensional anterior, tenemos la matriz principal como matriz indexada y las
matrices almacenadas como elementos son asociativas. Si la principal es asociativa, el índice no
es numérico ni secuencial, para encontrar los valores o claves del índice, se puede usar función
array_keys().
<?php
$coches = array(
array(“nombre”=>“Rav4”, “tipo”=>“4x4 SUV”, “marca”=>“Toyota”),
array(“nombre”=>“Ranger”, “tipo”=>“Pick up”, “marca”=>“Ford”),
array(“nombre”=>“Auris”, “tipo”=>“Familiar”, “marca”=>“Toyota”));
$longitud = count($coches); //obtener la longitud del arreglo
$claves = array_keys($coches); //claves de la matriz
//Recorrido de la matriz con el bucle for
for($i0 =; $i < $longitud; $i++){
echo $claves[$i].“\n”;
foreach($coches[$claves[$i]] as $clave => $valor){ echo $clave. “:”.$valor.“\n”;}
}
?>
Salida:
Rav4:
tipo: 4x4 SUV
marca: Toyota
Ranger:
tipo: Pick up
marca: Ford
Auris:
tipo: Familiar
marca: Toyota
- in_array(): para comprobar si un valor existe en una matriz. Recibe como parámetros el
valores a buscar (needle), la matriz (haystack) y un tercer parámetro opcional (strict), el
cual si está establecido en true, la función in_array() verificará los tipos de needle en
haystack. La función devuelve TRUE si el valor a buscar se encuentra en la matriz, de lo
contrario, devolverá FALSE.
<?php
$coches = array(“Rav4”, “Ranger”, “Auris”);
if(in_array(“Ranger”, $coches)){
echo “Existe Ranger”;
}else{
echo “Ranger no existe en la matriz”;
}
?>
//SALIDA: Existe Ranger
- array_merge(): esta función se usa para combinar dos matrices diferentes en una sola
matriz, sin importar si éstas son del mismo o de diferente tipo (indexadas, asociativas).
<?php
$matriz1 = array(“Manzana”, “Pera”);
$matriz2 = array(“Rojo”, “Verde”, “Amarillo”);
$resultado = array_merge($matriz1, $matriz2);
print_r($resultado);
?>
//SALIDA: Array( [0] => Manzana [1] => Pera [2] =>blue [3] =>yellow )
- array_values(): Esta función devuelve todos los valores de la matriz. En una matriz, los
datos se almacenen en forma de pares clave-valor, donde la clave puede ser numérica
(en el caso de una matriz indexada) o cadenas definidas por el usuario (en el caso de una
matriz asociativa) y valores. La función recibe como parámetro la matriz.
<?php
$camisa = array("tamaño" => "XL", "color" => "azul");
print_r(array_values($camisa));
?>
//SALIDA: Array(
[0] => XL
[1] => azul)
- array_keys(): esta función devuelve todas las claves o un subconjunto de claves de una
matriz. Recibe como parámetros la matriz que contiene las claves a devolver, un valor de
búsqueda, que si se indica serán devueltas las claves que contengan dichos valores, y por
último un parámetro strict para determinar si se debe hacer una comparación estricta
(==) durante la búsqueda.
<?php
$matriz = array(0 => 100, "color" => "rojo");
print_r(array_keys($matriz));
$colores = array("azul", "rojo", "verde", "azul", "azul");
print_r(array_keys($colores, "azul"));
?>
//SALIDA:
Array(
[0] => 0
[1] => color
)
Array(
[0] => 0
[1] => 3
[2] => 4)
- sort(): función para ordenar los elementos de una matriz de forma ascendente. En caso de
una matriz de valores de cadena, los valores se ordenan en orden alfabético ascendente.
Recibe como parámetros la matriz y opcionalmente un 2º valor para modificar el modo de
ordenación llamado sort_flags.
<?php
$colores = array("Azul", "Verde", "Amarillo");
sort($colores);
$numeros = array(5, 7, 2, 10);
sort($numeros);
?>
//SALIDA:
Amarillo
Azul
Verde
2
5
7
10
También existen otras funciones de ordenamiento más específicas las cuales son: asort(),
arsort(), ksort(), krsort() y rsort().
Objetos (object)
Son contenedores de datos y código. Forman la base de la Programación orientada a objetos que
se analizará en el siguiente capítulo de este tutorial llamado Lenguaje Orientado a Objetos PHP.
Recurso
El tipo de datos de recursos se usa para indicar recursos externos que PHP no usa de forma
nativa, pero que tienen significado en el contexto de una operación especial, como por ejemplo,
manejar archivos o manipular imágenes.
NULL
Indica que una variable no tiene valor. Se considera que una variable es NULL si se le ha
asignado el valor especial NULL o si aún no se le ha asignado un valor. Aunque, en este último
caso, PHP puede generar una advertencia si intenta utilizar la variable en una expresión.
Conversión entre tipos de datos: PHP se encarga de convertir entre tipos de datos de manera
transparente cuando se utiliza un dato en una expresión. Sin embargo, todavía es posible forzar la
conversión de un valor a un tipo específico usando operadores de conversión de tipo o
conversión de tipo (nombre del tipo de datos al que desea convertir, encerrado entre paréntesis
y colocado antes de una expresión).
<?php
$x = 10.88;
echo (int) $x; // Salida 10
?>
Tenga en cuenta que un valor no se puede convertir a algunos tipos especiales; por ejemplo,
no puede convertir ningún valor en un recurso. Sin embargo, puede convertir a un recurso a un
tipo de datos numérico o de cadena, en cuyo caso PHP devolverá la ID numérica del recurso, o la
cadena ID de recurso # seguido de la ID del recurso.
Variables: son contenedores de almacenamiento temporal. En PHP, una variable puede contener
cualquier tipo de datos, como cadenas, enteros, números de punto flotante, objetos y matrices.
PHP está tipado libremente, lo que significa que cambiará implícitamente el tipo de una variable
según sea necesario, dependiendo de la operación que se realice en su valor. Esto contrasta con
lenguajes fuertemente tipados, como C y Java, donde las variables sólo pueden contener un tipo
de datos a lo largo de su existencia.
<?php
$nombreVariable = valor;
?>
Además, en PHP, no tiene que declarar la variable primero y luego usarla, como se hace en Java
o en C++, por ejemplo, pero en PHP la variable se crea en el momento en que le asigna un valor,
como Python.
Las variables en PHP son case sensitive (sensible a mayus y minus), no es lo mismo NOMBRE y
nombre. En caso de las palabras reservadas del lenguaje no ocurre lo mismo, el intérprete las
reconoce estén escritas en mayúsculas o minúsculas.
Impresión de una variable: Para la impresión de una variable se utiliza el comando echo o el
comando print, ambos con la misma sintaxis y el mismo uso.
Tipos de Casting de una variable: Aunque PHP es un lenguaje de libre tipado, las variables
tienen un tipo y de pueden realizar conversiones entre tipos. Como se explicó, PHP admite
números enteros, flotantes, booleanos, cadenas, matrices, objetos y recursos, así como el valor
NULL. La forma más común de convertir es usar el operador de conversión, que consiste en el
tipo de conversión dentro de paréntesis:
<?php
$string = (string)123; // Cadena: “123”
?>
Al convertir tipos simples (enteros, flotantes, booleanos y cadenas) en matrices, terminará con una
matriz cuya 1a clave (o) será el valor original. Al convertir entre matrices y objetos, las claves de
matriz se convertirán en propiedades de objeto y las propiedades de objeto se convertirán en
claves de matriz. La conversión a un objeto dará como resultado un nuevo objeto stdClass.
Conversión a un objeto:
<?php
$objeto = (object) ["Manzana" => "roja", "Pera" => "verde"];
var_dump($objeto);
?>
//SALIDA: object(stdClass)#1 (2) { ["Manzana"]=>string(4) "roja" ["Pera"]=>string(5) "verde" }
Además del operador de conversión, hay funciones que pueden hacer la misma tarea:
● intval(): convierte la variable dada a un entero.
● floatval(): convierte la variable dada a un flotante.
● strval(): convierte la variable dada a una cadena de texto.
● boolval(): convierte la variable dada a un booleano. Esta función fue añadida en la versión
PHP 5.5.
● settype(): convierte la variable dada a un tipo dado.
No hay funciones para convertir a objetos o matrices.
Detección de tipos: PHP también proporciona funciones para detectar tipos de variables en
forma de is_<type>() y solo devolverán verdadero si la variable es del tipo especificado (por ej,
is_int() devolverá falso cuando se pasa la cadena “123”. Sin embargo, existe un método especial,
is_numeric() que devolverá verdadero si se pasa cualquier variable que sea un número; esto
incluye enteros, flotantes y cadenas que comienzan con enteros o flotantes.
● is_string(): comprueba las cadenas de texto.
● is_bool(): comprueba los booleanos.
● is_null(): comprueba los nulos.
● is_array(): comprueba los arreglos
● is_object(): comprueba los objetos.
Variables Variables: variable cuyo nombre está contenido en otra variable. EJ:
<?php
$color = 'azul';
$$color = 'verde';
echo $azul; //Imprime 'verde'
?>
En el ejemplo se crea una variable que contiene la cadena azul. Luego, usamos la sintaxis
especial $$color, comenzando con dos signos de dólar, para indicar que queremos que el
intérprete use el contenido de $color para hacer referencia a una nueva variable, creando así la
nueva variable $azul, que luego se imprime normalmente. Debido a la disponibilidad de variables
variables, de hecho es posible crear variables cuyos nombres no sigan las restricciones anteriores
definiendo el nombre entre llaves.
Las variables variables son una herramienta muy poderosa y deben usarse con extremo cuidado,
no sólo porque pueden hacer que su código sea difícil de entender y documentar, sino también
porque su uso incorrecto puede ocasionar algunos problemas de seguridad importantes.
Como puede ver la función print_r() evalúa $frutas e indica que es una matriz y numera las claves
o propiedades y sus valores. Con cadenas, enteros y flotantes, el valor es simplemente output.
Con booleanos y null se vuelve un poco complicado: para false o null, no se emite nada, para true,
se emite un 1. En verdad, print_r() proporciona poco más que echo.
Otra opción útil es var_dump(), que muestra datos, tipo y longitud (útil para encontrar caracteres
no imprimibles en cadenas y diferenciar entre cadenas vacías, false y null). Finalmente, puede
pasar cualquier nº de argumentos, y los volcará todos.
<?php
var_dump(null, false, “”, 1, 2.5, array(“Manzana”, “Pera”, “Numero” => 1.72));
?>
//SALIDA:
NULL
bool(false)
string(0) “”
int(1)
float(2.5)
array(3) {
[0] => string(3) “Manzana”
[1] => string(3) “Pera”
[“Numero”] => float(1.72) }
Otra opción para la depuración es debug_zval_dump(). Esto genera la representación interna del
motor de una variable (rara vez se usa esta función). La última opción de inspección es
var_export(), que permite generar una representación de cadena sintácticamente válida de una
variable, que si la ejecutara con PHP, volvería a crear el mismo valor de variable. Esto, cuando se
ejecuta, volvería a crear la matriz u objeto original y podría asignarse a una variable.
<?php
$frutas = array (
“Manzana” => “roja”,
“Pera” => “verde”,
“Mango” => “amarillo” );
var_export($frutas);
?>
//SALIDA
array (
“Manzana” => “roja”,
“Pera” => “verde”,
“Mango” => “amarillo” );
)
Tenga en cuenta que var_export() no termina su salida con un punto y coma. Todas estas
funciones también se pueden usar para examinar constantes, aunque en el caso de var_export()
es posible que no obtenga el resultado que esperaba.
Determinar la existencia de una variable: Una de las desventajas de la forma en que PHP
maneja las variables es que no hay forma de garantizar que alguna de ellas exista en un punto
determinado de la ejecución de un script. Esto puede presentar una variedad de problemas, desde
advertencias molestas, si intenta generar el valor de una variable inexistente, hasta problemas
importantes de seguridad y funcionalidad cuando las variables no están inesperadamente
disponibles cuando las necesita. Para mitigar este problema, puede usar la construcción especial
isset() que devolverá verdadero si existe una variable con valor distinto de NULL.
<?php
if(isset($x)) {
// Hacer algo si $x está establecida
}elseif(!isset($x)) {
// Hacer algo si $x NO está establecida}
?>
Determinar si una variable está vacía: otra construcción especial para determinar si una variable
está vacía es el comando empty() (antes solo aceptaba variables para su argumento, ahora para
culturizar expresión válida), el cual devolverá verdadero si el valor que se le pasa es NULL, o
cualquier valor que pueda convertirse en falso, incluyendo una cadena vacía, una matriz vacía, un
entero cero y la cadena "0".
<?php
$variable = "0";
if(empty($variable)) { // verdadero }
?>
//
<?php
if( empty(algunaFuncion()) ) { ... }
?>
Ámbito de una variable: o alcance, parte del script donde la variable puede ser referenciada o
utilizada. Está determinado por el contexto dentro del cual está definida la variable. En PHP las
variables pueden declarar en cualquier parte del script, por lo cual se presentan tres ámbitos
diferentes que llevan a clasificar a las variables en: locales, globales y estáticas.
- Variables locales: variable declarada dentro de una función. Se puede hacer referencia o
acceder únicamente dentro de esa función. Cualquier asignación fuera de esa función se
considerará completamente diferente:
<?php
function miPrueba() {
$x = 5; // alcance local
echo "<p>El valor de la variable x dentro de la función es: $x</p>";
}
miPrueba();
// usar x fuera de la función generará un error
echo "<p>El valor de la variable x fuera de la función es: $x </p>";
?>
- Variables globales: declarada fuera de una función con alcance global y sólo se puede
acceder a ella fuera de una función.
<?php
$x = 5; // alcance global
function miPrueba() {
$x = 5; // usar x dentro de la función generará un error
echo "<p>El valor de la variable x dentro de la función es: $x</p>";
}
miPrueba();
// usar x fuera de la función generará un error
echo "<p>El valor de la variable x fuera de la función es: $x </p>";
?>
Cabe destacar que PHP cuenta con la palabra clave global, la cual se usa para acceder a una
variable global desde una función. Para hacer esto, use la palabra clave global antes de las
variables (dentro de la función). Ejemplo:
<?php
$x = 5; $y = 10;
function miPrueba() {
global $x, $y;
$y = $x + $y; }
miPrueba();
echo $y; // imprime 15
?>
PHP también almacena todas las variables globales en una matriz llamada $GLOBALS[index]. El
índice contiene el nombre de la variable. También se puede acceder a esta matriz desde las
funciones y se puede usar para actualizar las variables globales directamente.
<?php
$x = 5; $y = 10;
function miPrueba() { $GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];}
miPrueba();
echo $y; // imprime 15
?>
Puede tener variables locales con el mismo nombre en diferentes funciones, porque las variables
locales sólo se reconocen por la función en la que se declaran.
<?php
function miPrueba() { static $x = 0;
static $x = 0;
echo $x;
$x++;
}
miPrueba();
miPrueba();
miPrueba();
?>
Luego, cada vez que se llama a la función, esa variable aún tendrá la información que contenía
desde la última vez que se llamó a la función. La variable sigue siendo local para la función.
Constantes: variable (identificador para un valor simple), con la diferencia de que una vez
definidas dicho valor no puede cambiar. Para que el nombre de una constante sea válido se deben
seguir las mismas reglas para nombrar variables, es decir, debe comenzar con una letra o el
carácter de subrayado (underscore), con la salvedad de que no se coloca el signo $ antes del
nombre de la constante. Los nombres constantes distinguen entre mayúsculas y minúsculas, sin
embargo, se considera mejor práctica definirlas utilizando sólo mayúsculas. El ámbito de una
constante es global, es decir, están disponibles en todo el script y sólo pueden contener valores
escalares. Hay 2 formas de definir una constante: Método define() y palabra clave const.
Define():
<?php
define(nombre, valor, case-insensitive)
?>
Parámetros:
● nombre: nombre de la constante.
● valor: valor de la constante.
● case-insensitiveb> (sin distinción entre mayúsculas y minúsculas): especifica si el nombre
constante distingue entre mayus y minús o no. Su valor predeterminado es false, lo que
significa que, por defecto, el nombre constante distingue entre mayúsculas y minúsculas.
<?php
define(SALUDO, “Bienvenido al tutorial de PHP.”);
echo SALUDO;
?>
// SALIDA Bienvenido al tutorial de PHP.
La función define()se puede usar también para definir constantes de matriz y recursos, aunque no
se usan con frecuencia.
Case sensitive: Para la definición constante anterior, si intentamos usar la siguiente declaración,
obtendremos un error, porque la constante SALUDO distingue entre mayúsculas y minúsculas.
<?php
define(SALUDO, “Bienvenido al tutorial de PHP.”);
echo saludo;
?>
// SALIDA saludo
echo lo considerará como una cadena y lo imprimirá tal como está, con un AVISO (NOTICE) sutil
que dice que la variable de cadena no está definida. La función define()se puede usar también
para definir constantes de matriz y recursos, aunque no se usan con frecuencia.
<?php
define(SALUDO, “Bienvenido al tutorial de PHP.”, true);
echo saludo;
?>
// SALIDA Bienvenido al tutorial de PHP.
La función define()se puede usar también para definir constantes de matriz y recursos, aunque no
se usan con frecuencia.
Const: Define constante solo si contienen valores escalares, es decir, enteros, flotantes,
booleanos y cadenas. Cuando se define una constante con la palabra clave const, el nombre de la
constante siempre distingue entre mayúsculas y minúsculas.
<?php
const SALUDO = “Bienvenido al tutorial de PHP”;
echo SALUDO;
?>
// SALIDA Bienvenido al tutorial de PHP.
Desde la versión PHP 5.6, se admiten el uso de expresiones escalares constantes para definir el
valor de una constante: const DOMAIN = "php.net"; const EMAIL = "davey@" . DOMAIN;
Una expresión escalar constante puede estar compuesta por los siguientes elementos:
1. Constantes mágicas de PHP (__LINE__, __FILE__, __DIR__ y __METHOD_₎.
2. Números enteros, números flotantes y cadenas.
3. Heredoc (sin variables interpoladas) y cadenas Nowdoc.
4. Otras constantes.