Buscador


En todo Internet
En Uterra.Com

Contenidos


En este artículo vamos a ver como convertimos un script PHP en una función PHP. Para ello vamos a partir de una función que yo personalmente uso con mucha frecuencia, la ordenación de fechas. Veamos a que me refiero.
 
Cuando guardas la fecha en una base de datos, el formato en que se guarda la fecha es AAAA-MM-DD (ejemplo: 2018-10-08) 8 de octubre de 2018, y a mi, personalmente, me gusta más la fecha en el orden DD-MM-AAAA (Ejemplo: 08-10-2018). Que se guarde la fecha en las bases de datos con el formato AAAA-MM-DD tiene una lógica muy elemental, poder ordenar las fechas en sentido ascendente o descendente. Así podemos tener, por ejemplo, un listado de clientes donde primero aparecen los más jóvenes, y los mayores aparecerán al final de la lista.
 
Contextualizado el problema al que nos enfrentamos vamos a partir de un ejemplo de función nativa de PHP, así sabremos concretamente que es lo que queremos hacer. Una función nativa de PHP se ejecuta de la siguiente forma:
 
$texto = 'Aprendiendo a crear funciones propias en PHP.';
$contamos = strlen($texto);
 
La función “strlen” cuenta el número de caracteres que hay en un texto, para ejecutar una función nativa de PHP, solo es preciso invocar la función “strlen($texto)” y tendremos en “$contamos” el número de caracteres de la cadena.
 
Pues bien, aunque PHP contiene muchísimas funciones, y cada día se agregan más con las nuevas versiones, nos encontraremos ocasiones donde PHP no tiene la función que necesitamos. Ese es el caso que comentábamos antes, ordenar la fecha.
 
Dicho esto, vamos a partir de un script PHP que nos ordena la fecha (CÓDIGO 1). Este código funciona perfectamente, ahora bien, el problema comienza cuando tenemos que ordenar más de una fecha. En ese caso, tendríamos que empezar a modificar los nombres para variables para evitar problemas de variables duplicadas, y además, el código se haría bastante extenso, y eso que este código es bastante sencillo.
 
Pues bien, este código lo podemos convertir de manera sencilla en una función, como puede verse en el CÓDIGO 2. Como puede verse, las funciones se definen con la palabra “function” y tomara la forma “Mi_Funcion($Mi_variable)” como ya vimos antes con la función nativa “strlen($texto)”. Entonces todo lo que tenemos que hacer es meter el script que teníamos entre las llaves de la función y agregar la palabra “return”, que nos devolverá la variable que el script ha generado. Mucho OJO, en las funciones solo puede haber un “return”, si precisas más de un valor, tendrás que crear un array que contenga los valores que quieres devolver.
 
Por ultimo, remarcar que si bien en el caso de las funciones nativas de PHP, solamente las llamamos, y se ejecutan. En el caso de las funciones propias, debemos cargarlas en la página, la mejor forma de hacerlo es mediante “include()” CÓDIGO 3. La llamada a la función se realiza de la misma forma que las funciones nativas de PHP. El CÓDIGO 4, contiene la función que hemos creado.
 
Espero que este artículo haya resultado didáctico y empecéis a crear vuestras propias funciones.

<?php 
error_reporting
(-1);  
ini_set("display_errors"1);

// CODIGO 1

// Cambia el orden de la fecha
// 2018-08-31 pasa a 31-08-2018

$fecha1 '2018-08-31';

$_Anio substr($fecha10, -6); 
$_Mes substr($fecha1, -52); 
$_Dia substr($fecha1, -2);
    
$_Sep '-';    // separador
$fecha2 $_Dia.$_Sep.$_Mes.$_Sep.$_Anio;

echo 
"
    <p>
        Fecha original: 
$fecha1 <br />
        Fecha nueva: 
$fecha2
    </p>
"
;
?>

<?php
// CODIGO 2

// Aqui comienza la función
function Fecha_Orden($Fecha){
    
$_Anio substr($Fecha0, -6); 
    
$_Mes substr($Fecha, -52); 
    
$_Dia substr($Fecha, -2);
        
$_Sep '-';    // separador
    
$fecha2 $_Dia.$_Sep.$_Mes.$_Sep.$_Anio;
        return 
$fecha2;
}
// Aqui finaliza la función

// Definimos las variables que contienen las fechas a transformar
$fecha_nacimiento '1987-06-19';
$fecha_registro '2018-06-04';
$fecha_hijo '2018-09-27';

// Ejecutamos a la funcion para ordenar cada fecha
$fecha_nacimiento_ord Fecha_Orden($fecha_nacimiento); 
$fecha_registro_ord Fecha_Orden($fecha_registro); 
$fecha_hijo_ord Fecha_Orden($fecha_hijo); 

    echo 
"<p>
    Orifinal: 
$fecha_nacimiento || Transformada: $fecha_nacimiento_ord <br />
    Orifinal: 
$fecha_registro || Transformada: $fecha_registro_ord <br />
    Orifinal: 
$fecha_hijo || Transformada: $fecha_hijo_ord <br />
    </p>"
;
?>

<?php
// CODIGO 3

// En la practica usuremos las funciones de esta forma

include('funcion_orden_fecha.php');

// Definimos las variables que contienen las fechas a transformar
$fecha_nacimiento '1987-06-19';
$fecha_registro '2018-06-04';
$fecha_hijo '2018-09-27';

// Ejecutamos a la funcion para ordenar cada fecha
$fecha_nacimiento_ord Fecha_Orden($fecha_nacimiento); 
$fecha_registro_ord Fecha_Orden($fecha_registro); 
$fecha_hijo_ord Fecha_Orden($fecha_hijo); 

    echo 
"<p>
    Orifinal: 
$fecha_nacimiento || Transformada: $fecha_nacimiento_ord <br />
    Orifinal: 
$fecha_registro || Transformada: $fecha_registro_ord <br />
    Orifinal: 
$fecha_hijo || Transformada: $fecha_hijo_ord <br />
    </p>"
;
?>

    <?php
    
// CODIGO 4
    
    // Este es el contenido del archivo funcion_orden_fecha.php
    
function Fecha_Orden($Fecha){
        
$_Anio substr($Fecha0, -6); 
        
$_Mes substr($Fecha, -52); 
        
$_Dia substr($Fecha, -2);
            
$_Sep '-';    // separador
        
$fecha2 $_Dia.$_Sep.$_Mes.$_Sep.$_Anio;
            return 
$fecha2;
    }
    
?>

Código PHP

Contacto

an image

Agrégame a Favoritos

Hazme tu página de inicio