El uso de Excepciones es muy útil a la hora de controlar y rastrear errores, si bien muchas funciones de PHP devuelven únicamente false en caso de error.
A continuación te mostramos un ejemplo de uso de excepciones:
<?php
function dividir($n1, $n2)
{
$resultado = null;
try
{
if( $n2 == 0 )
throw new Exception("División por cero", 74787);
else
$resultado = $n1 / $n2;
}
catch( Exception $e )
{
echo "<p>Entramos en 'Exception'</p>";
throw $e;
}
}
//--------------------
try
{
dividir(4, 0);
}
catch( Exception $e )
{
echo "Ha ocurrido una una Excepción:<br>";
echo "<p>==============================</p>";
echo "Código: ".$e->getCode()."<br/>";
echo "Mensaje: ".$e->getMessage()."<br/>";
echo "Archivo: ".$e->getFile()."<br/>";
echo "Línea: ".$e->getLine()."<br/>";
}
?>

Vea también: [ Excepciones en PHP ] - [ Exception ]

Al contrario que otros lenguajes de programación, a día de hoy la actual versión de PHP 5.3.0 no reconoce la cláusula finally en un bloque try ... catch().
El uso de funciones evita que se repita el código fuente del programa, permitiendo una mejor estructuración del programa y facilitando la depuración de errores y el posterior mantenimiento del mismo.
Para crear una función en PHP, después de la palabra function escribiremos el nombre de la misma junto con sus parámetros y el resto del código entre llaves, mientras que con return devolvemos el resultado, tal y como puedes ver en el siguiente ejemplo:
<?php
function multiplicar( $n1, $n2)
{
return $n1 * $n2;
}
// Llamamos a la función:
$resultado = multiplicar( 22, 3 );
// Mostramos el resultado:
echo "El resultado es: ".$resultado;
?>
Si necesitamos comprobar si existe una función en PHP utilizaremos function_exists():
<?php
function multiplicar( $n1, $n2) {
return $n1 * $n2;
}
if( function_exists("multiplicar") == true )
echo "La función 'multiplicar()' existe";
else
echo "La función 'multiplicar()' NO existe";
?>

Vea también: [ Funciones en PHP ] - [ function_exists() ]

Relacionado: [ Procedimentos y Funciones ] - [ Funciones en pseudocódigo ]

Poner una arroba '@' antes del nombre de una función ocasiona que no se muestren por pantalla mensajes de aviso o error que se puedan producir.
Mediante las funciones include() e include_once() podemos incluir y evaluar otro archivo, siendo la diferencia entre ellas que include_once() no volverá a incluirlo si ya lo había sido. En caso de error devuelven un E_WARNING.
También podemos usar require() y require_once() que son similares a las anteriores, con la única diferencia de que detienen el script en caso de error.
03_incluir_archivo_1.php:
<?php
require_once("03_incluir_archivo_2.php");
echo "<p>Estamos en el primer archivo</p>";
?>
03_incluir_archivo_2.php:
<?php
echo "<p>Estamos en el segundo archivo</p>";
?>

Vea también: [ include() ] - [ include_once() ] - [ require() ] - [ require_once() ]
Para redirigir a otra URL o página web usaremos la función header(), la cual debe ser llamada antes de enviar cualquier otra información al navegador web.
A continuación te mostramos cómo redirigir a otra URL:
<?php
header("Location: https://informaticapc.com/");
?>
En el siguiente ejemplo puedes ver cómo cargar otro archivo de página web:
<?php
header("Location: pagina2.php");
?>

Vea también: [ header() ]
Aparte de para redirigir a otra página también usaremos header() para enviar encabezados al navegador web. Para obtener más información sobre encabezados HTTP consulta el enlace facilitado al final de este apartado.
En el siguiente ejemplo enviamos encabezados que informan de que será enviado un archivo PDF:
<?php
$archivo = "test.pdf";
if( file_exists($archivo) )
{
// Cabeceras que indican que enviaremos el PDF y su tamaño:
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=".$archivo);
header("Content-length: ".filesize($archivo));
// Leer y enviar el archivo al navegador web:
readfile($archivo);
}
?>
Usaremos las función headers_list() para comprobar si se han definido cabeceras y headers_sent() para verificar que efectivamente han sido enviadas (es posible que no lo sean tras procesarse header() sino que hayan quedado temporalmente en el buffer de salida).
<?php
// Enviamos una cabecera:
header("Status: 404 Not Found");
// Forzamos que se vacíe el buffer, enviando la cabecera:
//flush();
// Mostramos los datos de la cabecera:
print_r( headers_list() );
if( headers_sent() == true ) // Comprobamos si se han enviado las cabeceras
echo "<p>Se han enviado cabeceras</p>";
else
echo "<p>No se han enviado cabeceras</p>";
?>

Vea también: [ Especificación HTTP/1.1 ] - [ Autentificación HTTP ] - [ header() ] - [ headers_list() ] - [ headers_sent() ] - [ flush() ]
Para forzar la salida de un script utilizaremos la función de PHP exit(), y mediante register_shutdown_function() es posible indicar una función que será procesada al finalizar dicho script.
<?php
function salida() {
echo "<p>Ha terminado el script</p>";
}
register_shutdown_function( "salida" );
exit("<p>Forzamos la salida del script</p>");
echo "<p>Esto es una cadena de texto</p>";
?>

Vea también: [ exit() ] - [ Autentificación HTTP ] - [ header() ] - [ headers_list() ] - [ headers_sent() ]

Vea también: [ register_shutdown_function() ]