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
- funciones variables
- funciones (build-in)
- funciones an贸nimas
- funciones an贸nimas y use
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

- Anterior: Estructuras de control en PHP
- Siguiente: introducci贸n a POO en PHP