PHP Introducción

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 34

1.

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.

Aunque su desarrollo y expansión se debe a la comunidad de software libre, la creación se


atribuye a RasmusLerdorf, 1994, que desarrolló el Common Gateway Interface (CGI) en lenguaje
C, al que llamó Personal Home Page Tools o PHP Tools. Objetivo inicial: registrar el nº de visitas a
su currículo online y mucha gente pidió a Lerdorf implementarla en sus páginas, se popularizó y
amplió funciones, como el procesamiento de formularios, que permitía interacción con bases de
datos y daba pie, en un principio, al desarrollo de aplicaciones web dinámicas sencillas, el
FormInterpreter (FI), y por ello se considera PHP / FI la 1ª versión sólida de este lenguaje.
● PHP / FI 2.0: junio 1996 y en 1997 se libera la veta con inclusión de soporte a nuevos
protocolos de internet y a la mayoría de bases de datos más comerciales. Esta versión fue
reemblazada en corto tiempo ya que para su publicación los israelíes AndiGutmans y
ZeevSuraski lo reescribieron para un proyecto universitario de una aplicación de comercio
electrónico. Junto a Lerdorf, se anunció el PHP 3.0 como sucesor de PHP / FI 2.0..
● PHP 3.0: se caracterizó por su gran extensibilidad con soporte a múltiples bases de datos,
protocolos y APIs, además de contar con una sintaxis más consistente que incluía
programación orientada a objetos. Lanzamiento oficial junio 1998.
● PHP 4.0: para el lanzamiento del 3.0 Gutmans y Suraski estaban actualizando el núcleo de
PHP con la intención de mejorar la ejecución de aplicaciones complejas y modularidad de
código. Este nuevo motor, se llamó Zend (Zeev y Andi) y nace el PHP 4.0, que brindaba
soporte a la mayoría de los servidores web, buffers de salida, manejo de sesiones HTTP,
control de entradas de usuario, entre otras. Aunque se introdujo 1999, oficial en 2000.
● PHP 5.0: julio 2004, impulsado por ZendEngine 2.0 con mejor rendimiento y soporte a la
Programación Orientada a Objetos (que antes se consideraba rudimentario), mejoras en el
soporte a MySQL y XML, iteradores de datos manejo de excepciones, etc, fue una de las
favoritas de los desarrolladores a nivel mundial durante más de una década. Se encuentra
en mantenimiento aunque ya va por PHP 7.0, pese a que nunca se llegó a presentar la 6.0.
● La gran cantidad de librerías y software que deben ser actualizados, aunado a la presencia
de errores en este versión PHP 7.0, no ha terminado de desplazar a la 5, aunque se
encuentra disponible en gran cantidad de servidores.

¿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.

Ejemplo. Para entender el funcionamiento:


1. María desea navegar por la página de NYX, la cual está escrita en lenguaje PHP, escribe
en la barra del navegador la URL. www.nyx.com
2. El navegador envía el mensaje al servidor que donde se aloja www.nyx.com a través de
internet, solicitando el archivo o página portada.php (que en este caso sería la página
principal que se visualiza en pantalla al acceder a la URL).
3. El servidor web recibe el mensaje y al verificar que el archivo tiene extensión “.php” solicita
al intérprete de PHP que le envíe el archivo.
4. El intérprete lee desde el disco el archivo portada.php
5. Los comandos contenidos en el archivo son ejecutados por el intérprete de PHP, el cual se
comunica con una base de datos (por ejemplo, MySQL, Oracle, SQL Server, MariaDB,
entre otras) y luego envía el archivo ya ejecutado al servidor web.
6. El servidor web devuelve a través de internet la página al cliente, en otras palabras, una
cadena de texto en formato HTML.
7. El navegador muestra el archivo en pantalla, que en el caso de PHP es la página HTML.

2. Características del lenguaje

Su popularidad en el mundo de desarrollo web es su característica más resaltante ya que fue el 1º


cuyo proceso de instalación, configuración y baja curva de aprendizaje le permitía al computista
promedio emprender en proyectos de gran envergadura y alcance. Esto le otorgó la ventaja de
que el mercado mismo de manera orgánica fuera creando toda una infraestructura de software
para satisfacer las demandas de los proyectos desarrollados en PHP.

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

Apache2 es un programa servidor, este tipo de programas se encargan de interpretar las


instrucciones de lenguajes script como PHP.

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.

3. Instalación de PHP, Apache y MySQL

Antes de instalar, asegurarse de tener una configuración de entorno adecuada en su ordenador


para desarrollar sus programas web usando PHP.

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.

Para instalar PHP 7.4.3.:


- Paso 1. Descargar PHP en https://windows.php.net/download. Descargar instalador
(ZIP) con la versión x64 o x86. Hay opción Non ThreadSafe (no segura para hilos) y
ThreadSafe (segura para hilos).
- Paso 2. Elegir donde instalar y crear carpeta PHP (normalmente en C), exportar
contenido zip y hacer copia del archivo php.ini-development (literalmente copie y
pegue es archivo nuevamente en la carpeta) y cambia el nombre a php.ini.
- Paso 3. Abra el archivo php.ini en cualquier editor de código y busque (Ctrl+f)
extensión_dir = “ext”. Elimine el comentario de esa línea quitando el punto y coma.
- Paso 4. Abra las variables de entorno en Propiedades del sistema (Windows
Search para “env”) y en Opciones avanzadas. Haga clic en Variables de entorno.
En Variables del sistema seleccione PATH y haga clic en Editar. Después agregue
dos nuevas entradas en esa lista de variables. Haga clic en Nuevo y agregue la
carpeta, agregue la ubicación de su carpeta de extensión C:\PHP\ext

- 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.

SARA: me bajé Xampp


Error:
C:\Users\sara>php -v
PHP Warning: 'C:\PHP\VCRUNTIME140.dll' 14.0 is not compatible with this PHP build linked with
14.29 in Unknown on line 0

Hola. Lo solucioné así:


copiando el archivo "vcruntime140.dll" ubicado en C:\Windows\System32 y luego
pegar y reemplazar en la carpeta C:\xampp\php
En ambiente Linux: entre la familia de sistemas operativos Linux, los sistemas .deb (Debían y sus
derivados como Ubuntu, Linux Mint, etc ….) se encuentran entre los más populares. Por esta
razón esta guía explica Debian o sus derivados. Para poder instalar software en un sistema Linux,
es necesario contar con privilegios de administrador, para ello debemos asegurarnos que nuestro
usuario o bien sea root o se encuentr dentro de las lista de sudoers.
- Paso 1. La versión de PHP por defecto, de las versiones más actuales de Debian/Ubuntu,
es la 7.1 o superior. Para instalar esta versión también se requiere instalar el módulo de
PHP para apache2. Todo esto se puede lograr con un solo comando: sudo apt-get install
php libapache2-mod-php
- Paso 2. Presione “Y” cuando la consola pregunte por confirmación. Puede probar la
instalación de PHP creando una archivo en la carpeta raíz de su sitio web. Para hacer eso,
escriba el comando: sudo nano /var/www/html/info.php
- Paso 3. Luego escriba el siguiente código en la consola y presione control X y Y para
guardar el fichero. <?php phpinfo(); ?>
- Si se navega a la dirección http://localhost/info.php el siguiente contenido deberá aparecer
en pantalla.

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

# Load PHP module from our setup.

LoadModule php7_module C:\PHP\php7apache2_4.dll

# 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>

# Deny access to raw php sources by default

<FilesMatch ".+\.phps$">
SetHandler application/x-httpd-php-source
Require all denied
</FilesMatch>

# Deny access to files without filename (e.g. '.php')

<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

- Paso 6. Abra un navegador web y escriba la IP de la máquina en la barra de direcciones y


presione Entrar. El mensaje “Itworks” debe aparecer en la pantalla del navegador. Una vez
verificado el funcionamiento de la instalación de Apache, es necesario comprobar que
Apache está detectando la instalación de PHP en el ordenado. Para lograr esto es
necesario crear un fichero dentro del directorio C:\Apache24\htdocs llamado phpinfo.php
con el siguiente contenido <?php echo phpinfo()?> .
- Paso 7. Luego acceda a http://localhost/phpinfo.php y se verá la salida de phpinfo.

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

Para instalar Apache: https://www.youtube.com/watch?v=KnlRf6ZP4UI&t=2s

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.

- Paso 1:Ejecute el instalador que descargó en su servidor. Se mostrará una lista de


opciones del tipo de configuración a instalar → seleccione la opción Full → Next.
- Paso 2: Aparecerá una lista de productos con requerimientos por defecto. No seleccione
ninguno → Next → Aparecerá ventana de alerta indicando que los productos con requisitos
faltantes no serán instalados o actualizados y pregunta si desea continuar → Si.
- Paso 3: aparece otra lista de productos que serán instalados → Execute → cuando esté →
Next. Configuraciones de producto → Next.
- Paso 4: En la pantalla High Availability (Alta disponibilidad) deje marcada la opción
StandaloneMySQLServer / ClassicMySQLReplication → Next → pasará a Type and
Networking → todo por defecto → Next.
- Paso 5: En AuthenticationMethod dejar la opción por defecto Use Strong Password
Encryption for Authentication (RECOMMENDED) → Next. Luego verá pantalla para
configurar contraseña de cuenta root para MySQL (combina mayus, minus, nº y
carácteres) y podrá crear cuentas de usuario y asignar roles a las mismas.
- Paso 6: En Windows Service deje todo seleccionado por defecto → Next. En Apply
Configuration (dejar por defecto) → Next.
- Paso 7: En ProductConfiguration visualizará el producto MySQL Server <version> con
estatus Configuración completa → Next. Luego MySQLRouterConfiguration → dejar datos
por defecto → Finish. Vuelta a ProductConfiguration pero en MySQLRouter <version> con
estatus configuración no necesaria.
- Paso 8: Visualizará la pantalla donde se establece la conexión al servidor. Allí deberá
colocar la clave que creó antes y personal el botón Check para validarla y si es correcta
verá el estatus Connection Succeeded (conexión exitosa).
- Paso 9: En ApplyConfiguration, presiones Execute y completada la operación → Finish,
volverá a ProductConfiguration con todos los productos configurados → Next.
- Paso 10: Pantalla Insallation Complete. Deje campos por defecto → Finish. La instalación
se ha completado y se desplegará la ventana MySQLWorkbech.
Linux:
- Paso 1: ejecute el comando en la consola y después presiona “Y” cuando la consola
pregunte por confirmación sudo apt-getinstallmysql-server
- Paso 2: MySQL viene configurado de manera insegura por defecto, por lo cual se
recomienda ejecutar el comando para asegurar la instalación: sudo
mysql_secure_installation. La consola irá prestando una serie de preguntas para
establecer contraseña del usuario root y cuál política de contraseñas usar. El prompt
también solicitará eliminar al usuario anónimo y que se desactive el inicio de sesión
remota.
- Paso 3: Para probar que todo está bien instalado, se ejecuta el comando: mysql -u root -p.
MySQL ya se encuentra instalado en el sistema y de hecho se puede comenzar un
desarrollo que requiera del motor de base de datos MySQL, pero tanto en un ambiente de
desarrollo como en uno de producción, resulta complicado el interactuar con las bases de
datos con tan sólo la consola de comandos de MySQL. Por esta razón a continuación se
presenta como instalar el programa de interfaz gráfica MySQLWorkbench.

Para conectar MySQLWorkbench al servidor local de base de datos se debe crear una conexión
como se muestra a continuación.
Configuración

● En el campo hostname se debe colocar localhost. En el puerto el 3306. El usuario por


defecto es root y el password definido en el proceso de instalación del paquete
mysql-server.

Ahora sí ha culminado el proceso de instalación de MySQL en su ordenador bajo el ambiente


Linux.

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.

Otro similar → EasyPHP: https://www.easyphp.org/

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

2.1 Sintaxis PHP5: Introducción

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”.

2.2 Características del lenguaje

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’;?>

Etiquetas (Tags) PHP: Hay 5 tipos de etiquetas disponibles:


1. Etiquetas estándar: de apertura y cierre configuradas por defecto en todas las
instalaciones de PHP. Son obligatorias si se quiere escribir un bloque de código de este
lenguaje.Siempre están disponibles, brindando portabilidad y compatibilidad con versiones
anteriores, y no pueden ser desactivadas en el archivo de configuración de PHP. <?php //
aquí va código PHP ?>
2. Etiquetas echo: Antes de PHP 5.4 la habilitación de etiquetas cortas también hacia
disponible la forma corta <?= $variable;?> que le permite imprimir el resultado de una
expresión directamente en la salida del scripts, la “etiqueta de echo”. Con el lanzamiento
de PHP 5.4 las etiquetas cortas y las etiquetas de echo se dividieron, y las etiquetas de
echo ahora están siempre habilitadas. <?=$variable;?>.
3. Etiquetas cortas: fueron, por un tiempo, el estándar en el mundo PHP; sin embargo, tienen
el inconveniente principal de entrar en conflicto con las instrucciones de procesamiento
XML (por ejemplo, <? xml) y, por lo tanto, ya no se recomiendan, en desuso, se aconseja
evitar su uso. <?= // código PHP?>.
4. Etiquetas Script: fue introducida para proveer a los navegadores el poder interpretar el
código Javascript de forma separada al de PHP, así, todo lo que el navegador encuentre
dentro de la etiqueta script lo interpreta como Javascript, y cuando éste se encuentra con
los tags de PHP simplemente los ignora. <script language=”php”> // código PHP </script>.
En desuso, se aconseja evitar su uso.
5. Etiquetas ASP: puede considerarse curiosidad anecdótica del lenguaje, permiten al
interprete aceptar como etiquetas apertura y cierre a las etiquetas usadas por ASP. <% //
código PHP%>. En desuso, se aconseja evitar su uso.

MANUAL PHP EN ESPAÑOL: https://www.php.net/manual/es/

Comentarios: Como otros lenguajes de programación, PHP pone a disposición en su sintaxis la


opción de comentarios, que es una sentencia ignorada por el intérprete de script y son dejados en
el código solo para que sean leídos por los programadores. Se considera una buena práctica de
programación comentar cada función, clase, método o propiedad en el código, proporcionando de
forma breve y concisa la descripción y la utilidad de éstos, lo cual permite a otros programadores
entender más rápidamente su funcionalidad, o incluso al mismo desarrollador del código volver a
entender lo que hizo y revisar dicho código. Formas de comentar en PHP:

// Comentario de una sola línea


# Comentario de una sola línea
/* Comentario
multilínea */

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
}

2.3 Memoria y sus tipos

Cuando deseamos almacenar cualquier información (datos) en nuestro PC, la almacenamos en el


espacio de memoria del mismo. En lugar de recordar la dirección compleja de ese espacio de
memoria, el sistema operativo brinda la opción de crear carpetas y nombrarlas para que resulte
más fácil encontrarlas y acceder a ellas. De forma similar, en cualquier lenguaje de programación,
cuando queremos usar algún valor de datos en nuestro programa, podemos asignarle un nombre
representativo del espacio de memoria que este ocupa en el disco del PC, la Variable.
Tipos de datos: el PHP maneja 8 tipos diferentes de datos que se dividen en 3 categorías:
- Escalares: entero, flotante, cadena y booleano
- Compuestos: matriz y objeto.
- Especiales: recurso y NULL.

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, Como en la mayoría de los lenguajes de programación, tiene un manejo de nº dependiente


de plataforma. Esto quiere decir que el procesamiento de los nº varía dependiendo de la
arquitectura del hardware que esté procesando las instrucciones del lenguaje. Por ejemplo:
plataformas de 64 bits, dependiendo de cómo se compiló PHP a la hora de su instalación, pueden
tener una capacidad mayor de procesamiento de memoria y por ende un manejo de cantidades
numéricas más amplio que si se tratara de un hardware de arquitectura de 32 bits. Los tipos de
datos flotantes no siempre reflejan el valor esperado en las instrucciones del código. Ej:

<?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.

//Cadenas con comillas dobles

<?php

$contenido = “Tutorial de PHP”; //creación de una variable de tipo string o cadena


$saludo = “Bienvenidos al $contenido”;
echo $saludo;
?>

//SALIDA: Bienvenidos al Tutorial de PHP

En el ejemplo anterior se crearon 2 variables que almacenan cadenas de texto. A la variable


$saludo se le asigna texto utilizando las comillas dobles, y se invoca a la variable $contenido. PHP
en este caso interpreta la variable y al imprimir con el comando echo la sustituye por su valor
(“Tutorial de PHP”). A esto se le conoce como interpolación de una variable.

//Cadenas con comillas simples

<?php

$contenido = ‘Tutorial de PHP’; //creación de una variable de tipo string o cadena


$saludo = ‘Bienvenidos al $contenido’;
echo $saludo;
?>

//SALIDA: Bienvenidos al $contenido

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

$contenido = ‘Tutorial de PHP’; //creación de una variable de tipo string o cadena


$saludo = ‘Bienvenidos al’. $contenido’;
echo $saludo;
?>

//SALIDA: Bienvenidos al Tutorial de 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.

Comillas dobles: permiten más carácteres de escape:


● \n: Nueva línea.
● \r: Retorno de carro.
● \t: Tabulador horizontal
● \v: Tabulador vertical.
● \e: Tecla de escape.
● \f: Tecla de avance de página.
● \\: Contrabarra o barra invertida.
● \$: Símbolo de dólar.
● \”: Comillas dobles.
● \[0-7]{1,3}: La secuencia de caracteres que coincida con la expresión regular es un
carácter en notación octal
● \x[0-9A-Fa-f]{1,2}: La secuencia de caracteres que coincida con la expresión regular es un
carácter en notación hexadecimal.

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”>.

Comillas simples: carácteres de escape permitidos:


● \’: Comillas simples.
● \\: Contrabarra o barra invertida.

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;
?>

En este caso, el código generará la salida: Bienvenidos al “Tutorial de $lenguaje” porque la


variable se trata como literal no se interpola (como cadenas entre comillas simples). PHP 5.3
también agregó la capacidad de doble cita del identificador, lo que da el comportamiento
tradicional heredoc. Las cadenas Heredoc y Nowdoc se pueden usar en casi todas las situaciones
en las que una cadena es un valor apropiado. La única excepción que se aplica, sólo a heredoc,
es la declaración de una propiedad de clase. Incluso en PHP 5.6, existe la advertencia de que no
se puede interpolar variables al usar heredoc para definir propiedades. Nowdoc se puede usar sin
problemas.

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

$texto = substr(“Bienvenido al tutorial de PHP”, 14);


echo $texto; // imprime tutorial de PHP
$texto = substr(“Bienvenido al tutorial de PHP”, -3);
echo $texto; // imprime 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

$cadena = "Bienvenidos al Tutorial de PHP";


$cadenaModificada = strtolower($cadena);
echo $cadenaModificada; //imprime bienvenidos al tutorial de php
?>

E. strtoupper() → función para convertir todos los caracteres de una cadena de texto en
mayúscula.

<?php

$cadena = "Bienvenidos al Tutorial de PHP";


$cadenaModificada = strtoupper($cadena);
echo $cadenaModificada; //imprime BIENVENIDOS AL TUTORIAL DE 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

$cadena = “Bienvenidos al Tutorial de PHP”;


$pos = “PHP”;
echo “La posición de PHP en la cadena es: ”.strpos($cadena, $pos); // SALIDA: La posición de
PHP en la cadena es: 26
?>

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

$cadena = ‘Andrea Andreina’;


$pos = strpos($cadena, ‘dre’, 3); // SALIDA: 9
?>

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.
?>

Arreglos o Matrices (array)

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";
?>

Ejemplo matriz indexada llamada $frutas, a la cual se le asignarán 3 elementos y luego se


imprimirá un texto que contiene los valores de la matriz.
<?php

$frutas = array("Manzana", "Pera", "Mango");


echo "Mis frutas favoritas son: ".$fruta[0].", " .$fruta[1]. " y ".$fruta[2].".";
?>

Obtener la longitud de una matriz: función count().

<?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

$frutas = array("Manzana", "Pera", "Mango");


foreach($frutas as $favoritas) {
echo $favoritas. “\n”;
}
?>

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.";
?>

//SALIDA: Juan tiene 30 años de edad

Se puede usar el bucle for o foreach.

- 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

Funciones de matriz: funciones integradas para el procesamiento de matrices:


- sizeof(): recibe como parámetro el arreglo o matriz y se usa para obtener el tamaño de la
matriz o el número de elementos almacenados en ella. Similar al método count().
<?php
$coches = array(“Rav4”, “Ranger”, “Auris”);
echo “El tamaño de la matriz es: ”.sizeof($coches);
?>
//SALIDA: El tamaño de la matriz es 3

- 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

- print_r(): Aunque esta no es propiamente una función de matriz, no se puede dejar de


mencionar, ya que es muy útil a la hora de querer imprimir una matriz de la forma más
descriptiva posible. Esta función imprime la representación completa de la matriz, junto con
todas las claves y valores.
<?php
$coches = array(“Rav4”, “Ranger”, “Auris”);
print_r($coches);
?>
//SALIDA: Array (
[0] => "Rav4"
[1] => "Ranger"
[2] => "Auris")

- 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.

Declaración de una variable: ocurre cuando se le asigna un valor y no es obligatorio definir el


tipo de dato que va a almacenar sino hasta el momento de utilizarla.

<?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.

Normas para nombrar variable:


- Una variable se declara comenzando por $ seguido del nombre de la variable.
- El nombre puede contener sólo letras (a-z, A-Z), números y el carácter de subrayado
(underscore).
- El nombre debe comenzar con una letra o el carácter de subrayado (nunca con valor
numérico).

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.

Variables válidas: $nombre = “valor”; // $_nombre = “valor;” // $nombre_ = “valor”; // $nombre123 =


“valor”;.
Variables inválidas: $1nombre = “valor”; // $nombre* = “valor”; //Los nombres de variables sólo
admiten el carácter de subrayado.

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.

//Con el comando echo → Salida: Juan


<?php
$nombre = “Juan”;
echo $nombre;
?>
//Con el comando print → Salida: Juan
<?php
$nombre = “Juan”;
print $nombre;
?>

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.

Ejemplo: Eludir las restricciones de nombre


<?php
$$numero = '123'; ///* 123 es su nombre de variable, esto normalmente no sería válido. */
$$numero= '456'; // De nuevo, se le asigna un valor a número.
echo ${'123'}; Finalmente, usando llaves se puede generar '456'
?>

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.

Inspeccionar una variable: la 1a y la forma m´s simple es print:r(). Ej:


<?php
frutas = array (“Manzana”, “Pera”, “Mango”);
print_r($frutas);
?>
//SALIDA: Array(
[0] => Manzana
[1] => Pera
[2] => Mango )

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.

- Variables estáticas: Normalmente, cuando se completa o ejecuta una función, se eliminan


todas sus variables. Sin embargo, a veces queremos que NO se elimine una variable local,
si por ejemplo la necesitamos para una tarea adicional. Para hacer esto, use la palabra
clave static cuando declare la variable por primera vez.Ejemplo:

<?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.

Valor predeterminado: Si no se menciona el parámetro que no distingue entre mayúsculas y


minúsculas, tomará automáticamente el valor predeterminado para eso:

<?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.

Tercer parámetro: especificaremos el parámetro que no distingue entre mayúsculas y minúsculas.

<?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.

También podría gustarte