Blog de programaci贸n, errores, soluciones

PHP / functions -Entendiendo las funciones en PHP

Las funciones en php son bloques de c贸digo o subalgoritmos el cual puede ser reutilizado y permite resolver una tarea espec铆fica. Las funciones deben ser definidas antes de ser llamadas o referenciadas.

Temas siguientes:

Funciones Definidas

La definida es la funci贸n a la cual le damos un nombre . El nombre de una funci贸n debe de empezar con una letra o guion bajo. Para declarar una funci贸n debe usar la palabra clave function.

<?php
function saludo(){ //declaracion de la funcion saludo
   echo "holaa !!";
}

saludo();// llamo a la funcion saludo


?>

Como podemos ver definimos una funci贸n con la palabra function u la llamamos con el nombre que le hemos dado en este caso saludo()

A una funci贸n tambi茅n le podemos pasar par谩metros vea el siguiente ejemplo.

<?php
function saludo($nombre){
   echo "hola $nombre !!";
}

saludo("Luis");
saludo("Mariam");


?>

Pasar par谩metros por referencia a una funci贸n. A continuaci贸n la diferencia entre una cosa y otra.

<?php
    $a = 0;
    $b = 0;
    echo "tanto la variable a como b partiran con el mismo valor y veremos como cambia pasar algo por referencia o no";

    function porReferencia(&$n){
        $n = 2;
    }
    function sinReferencia($n){
        $n = 2;
    }

    porReferencia($a);
    echo "<br/>el valor de a: ".$a;
    sinReferencia($b);
    echo "<br/>el valor de b: ".$b;
    //como puede ver el valor de a ahora sera 2 y el de b seguira siendo 0
    //esta es la diferencia de usar una variable por referencia
?>

Funciones variables

Si una variable le siguen 2 parentesis () ejemplo $nombre() esta asumir谩 el nombre de valor de la variable a estas se le llama funciones variables. Obviamente la variable tendra que tener un valor string que cumpla con las reglas para nombres de funciones.

<?php
function hola(){
    echo "hola a todos";
}
$nombre= "hola"
$nombre();
?>

Funciones (build-in)

Otro tipo de funciones en php viene con muchas funciones ya pre-instaladas y otras que si las tratamos de usar sin que la extensi贸n este instalados fallaran por ejemplo mysqli,curl, otros. Muchas de estas extenciones vienen preinstaladas si usamos un LAMP un WAMP o otro de este tipo.

Funciones an贸nimas

En las funciones an贸nimas estas no tiene un nombre alguno y puede ser usada en un callback o guardada en una variable o puede ser una funci贸n que sera usada directamente. Creo que ya use una en una variable una vez. De todos modos aqu铆 unos ejemplos.

<?php
    
    $name = function($var){
        if(is_numeric($var)):
            return "es un numero";
        elseif(is_array($var)):
            return "es un array";
        else:
            return "no es un numero ni un array";
        endif;
    };

    echo $name(array(1,2));
?>

el siguiente ejemplo lo saque directo de php.net

<?php
echo preg_replace_callback('~-([a-z])~', function ($coincidencia) {
    return strtoupper($coincidencia[1]);
}, 'hola-mundo');
// imprime holaMundo
?>

Algunas cosas nuevas desde php 7.1

desde php 7.1 puede usar el termino use para referirse a variables en el entorno padre de esta.

Tambi茅n se puede predefinir lo que devolver谩 una funci贸n con : luego del nombre() de la funci贸n y el tipo que devolver谩 o void si es que la funci贸n no devolver谩 nada.

nomenclatura function nombre_funcion () : tipo_de_variable

<?php
$mensaje = 'hola';

// Sin "use"
$ejemplo = function () {
    var_dump($mensaje);
};
$ejemplo();

// Heredar $mensaje
$ejemplo = function () use ($mensaje) {
    var_dump($mensaje);
};
$ejemplo();

function llamar ($nombre) : string {
        return "llamando a $nombre";
}

Referencia:php.net

Mas de php en: PHP 101 -mini tutorial de PHP


Ayudame: Por favor deja un comentario antes de irte, tu opini贸n es bienvenida. Si te gusta el contenido comparte.