Blog de programación, errores, soluciones

Chose Language:
Author: Admin/Publisher |finished | checked

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 en PHP

https://blastcoding.com/funciones-en-php/#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.

ejemplo de función definida
<?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.

paso de parámetro a función
<?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.

Ejemplo- paso de parámetro por referencia
<?php
    $a = 0;
    $b = 0;
    echo "tanto la variable a como b partirán 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 será 2 y el de b seguirá 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.

Ejemplo simple de funciones variables
<?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 PHP

https://blastcoding.com/funciones-en-php/#funciones_anonimas

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 será usada directamente. Creo que ya use una en una variable una vez. De todos modos aquí unos ejemplos.

Ejemplo de Función anónima
<?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 saqué directo de php.net

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

Utilizando use

Desde PHP 7.1 puede usar el término use para referirse a variables en el entorno padre de esta.

<?php
$mensaje = 'hola';

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

// Heredar $mensaje
$ejemplo = function () use ($mensaje) {
var_dump($mensaje);
};
$ejemplo();
20/7/2023 – Algo que me había olvidado de mencionar en funciones anónimas es que estas pueden ser corridas sin ser asignadas a una variable . Estas son pues funciones anónimas de ejecución inmediata.

Este tipo de función en conjunto con heredoc pueden ser muy útiles para WordPress o en cualquier proyecto en PHP.

Tampoco saturas o tienes variables de mas globales, es una muy buena opcion veamos su sintaxis rapidamente:

(function(){
// tu codigo va aqui
})();

Tipo de retorno en funciones

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.

sintaxis:
function nombre_funcion () : tipo_de_variable
definiendo que tipo de dato retorna
function llamar ($nombre) : string {
        return "llamando a $nombre";
}

es probable que tengamos que usar declare(strict_type=1) la idea hoy en día es que esta línea sea declarada casi al inicio de nuestro proyecto así el tipo de datos es estricto en todo el programa.

Retornos que pueden ser null

Para que un retorno pueda ser null debemos de agregar delante del tipo de retorno ?

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

Declaración de tipo de dato en los parámetros de las funciones (desde PHP 7.4)

PHP 7.4 trajo consigo algunas cosas nuevas como el poder como la declaración del tipo de dato de la variable en el argumento, esto es extremadamente útil, ya que podemos saber con certeza el tipo/ los tipos de datos que le estamos pasando a dicha función.

definiendo que tipo de datos pasamos por parámetro
<?php

function holamundo(string $a, string $b){
    echo $a." ".$b;
}
holamundo("hola","mundo");

Por defecto, PHP tratará de cambiar el tipo de la variable al esperado, para evitar esto puede usar la sentencia declare(strict_types=1);. De este modo estamos obligando a que la variable pasada sea lo esperado. En caso de no serlo nos dará un error.

Veamos unos ejemplos con la función anterior.

Sin usar Strict type

Sin declare(strict_type=1)
<?php

function holamundo(string $a, string $b){
    echo $a." ".$b;
}
holamundo(1,"mundo");
1 mundo

En caso de usar Strict type

Con declare(strict_type=1)
<?php

declare(strict_types=1);

function holamundo(string $a, string $b){
    echo $a." ".$b;
}
holamundo(1,"mundo");
Fatal error: Uncaught TypeError: holamundo(): Argument #1 ($a) must be of type string, int given, called in C:\xampp\htdocs\tutorialphp\funciones.php on line 6 and defined in C:\xampp\htdocs\tutorialphp\funciones.php:3 Stack trace: #0 C:\xampp\htdocs\tutorialphp\funciones.php(6): holamundo(1, 'mundo') #1 {main} thrown in C:\xampp\htdocs\tutorialphp\funciones.php on line 3

Parámetros nullables

Para que un argumento pueda ser null además del tipo de datos que le especificamos, le tenemos que agregar el simbolo ? del tipo de datos que especificamos

Tomemos como ejemplo el código anterior:

<?php

declare(strict_types=1);

function holamundo(?string $a, string $b){
    echo $a." ".$b;
}
holamundo(NULL,"mundo");

Ahora $a puede ser null la cuestión es que ahora tengo que trabajar con null por ejemplo si $a es null haga le asigne un valor. Si yo corro tal como está esto nos dará como resultado solamente mundo

Referencia:php.net


Category: php
Something wrong? If you found an error or mistake in the content you can contact me on Twitter | @luisg2249_luis.
Last 4 post in same category