Está en la página 1de 10

Funciones en PHP

Una función puede ser definida como un conjunto de instrucciones que permiten procesar los datos
almacenados en la variables para obtener un resultado. Las funciones pueden ser invocadas cada
vez que se necesiten.

Las funciones pueden recibir parámetros, que son como variables dentro de la función a las que se
le asigna valores en el momento de su invocación. Las funciones pueden servir para realizar tareas
sencillas o complejas.

Las funciones de PHP nos permiten realizar de una manera sencilla tareas habituales, a la hora de
desarrollar una aplicación, pero además nosotros podemos hacer nuevas funciones para resolver
todo tipo de tareas más específicas de nuestra aplicación.

Una funcion puede devolver valores, los cuales son devueltos usando la sentencia opcional return.
Se puede devolver cualquier tipo, incluidos arrays y objetos. Esto causa que la función finalice su
ejecución inmediatamente y pase el control de nuevo a la línea desde la que fue llamada. Sino se
coloca el return devuelve null.

Return devuelve el control del programa al módulo que lo invoca. La ejecución vuelve a la siguiente
expresión después del módulo que lo invoca.

Funciones Definidas
Para definir o crear una función en PHP se utiliza la palabra reservada function seguidamente el
nombre de la función (parámetros) y dentro de parentesis los parámetros si los hay y por ultimo
entre llaves({}) el cuerpo de la función. sintaxis
function nombre_funcion(arg1,arg2...argn)
{
instrucciones...
}

Para llamar una función lo podemos hacer de la siguiente manera:


1. nombre_funcion(arg1,arg2,...argn) //se coloca el nombre de la función y dentro de
parentesis los parametros
2. $variable=nombre_funcion(arg1,arg2,...argn) // se le asigna la llamada de la función a
una variable

Nombre de la función
Los nombres de las funciones siguen las mismas reglas que las demás etiquetas de PHP. Un nombre
de función válido comienza con una letra o guion bajo, seguido de cualquier número de letras, nú
meros o guiones bajos. Se recomiendan escribir los nombres de las funciones en minúsculas.

Argumentos
Los argumentos nos permiten pasar cualquier tipo información a las funciones . Los argumentos son
evaluados de izquierda a derecha, lo que implica que se tienen que enviar a la función en el mismo
orden en el que hayan sido definidos. Los argumentos se separan con coma().

Debemos tener en cuenta que los argumentos que le enviemos a la función se deben recibir en el
mismo orden, porque de lo contario podria causar conflictos al momento de trabajar con los mismos,
y tambien debe ser la misma locantidad de argumentos.

Ejemplo 1
Por ejemplo supongamos que queremos calcular el porcentaje de descuento de un artículo a partir
su precio. Podríamos definir una función descuento como se muestra a
continuación.

<?php
/* Funcion que permite calcular el descuento al articulo y muestra su nuevo precio*/
function descuento($precio) { // se recibe un argumento
$desc=$precio*0.05; // se tomo para el ejemplo el 5% de descuento y se creo la
//variable $desc para almacenar el cálculo del descuento

$precio_desc= $precio - $desc; /*se creo la variable $precio_desc, la cual


almacenara el calculo del precio con
descuento*/
echo " El precio con descuento es: ".$precio_desc; //muestra el nuevo precio
}

$precio= 100000; //creación de la variable $precio y asignación de valor con el


//operador de igualdad (=)
descuento($precio); /* llamada a la función descuento y se le pasa un
argumento en este caso el precio*/
?>

ejemplo 2
<?php
/*
Si tenemos una función que recibe tres argumentos: una cadena, un número y otro tipo booleano,
los valores que le pasemos tendrán que ser en ese mismo orden y del mismo tipo.
*/
function evalua($nombre, $edad, $estado) {
echo “aqui va el código”;
}
//Asignación de valores a las variables
$cad="Pedro";
$num=-50;
$bol=false;
evalua($bol, $cad, $num); // orden de envío de argumentos ERRONEO
evalua($cad, $num, $bol); // orden CORRECTO de envío de argumentos
evalua($cad, $num); // número de argumentos ERRONEO (falta el tercer argumento)
?>

Argumentos por valor y por referencia

Por defecto el paso de argumentos es por valor, es decir se envía una copia del valor. En PHP el
paso de argumentos por referencia se realiza anteponiendo el símbolo ‘&’ al nombre del
argumento y listas de argumentos de longitud variable, en la definición de la función. El paso de
parametros por referencia te permite que el valor de la variable que se cambio se mantega aun
cuando se haya terminado la ejecución de la función.

function NombreFuncion($Argumento1, &$Argumento2, ...) {


Líneas de código
}

Por referencia sólo es posible enviar variables y objetos, pero no valores constantes como números
o cadenas.

Ejemplo 3
<?php

/* Función que te permite calcular el doble de un numero


function doble(&$numero) {
$numero=$numero*2;
}

$n=10;
doble(10); // Error ya que enviamos un valor
doble($n); // Correcto ya que enviamos una variable
echo $n; // mostrará el valor 20 ya que la variable se ha modificado dentro de la función
?>

Ejemplo 4
<?php
/*
Función que te permite calcular el cuadrado de un numero. Recibe dos argumentos
Por valor: un número
Por referencia: variable donde almacenar el resultado
*/
function cuadrado($numero, &$resultado) {
$resultado=$numero*$numero;
$numero=100;
}
$n=5;
$val=0;
cuadrado($n, $val);
//La variable $val almacena el cuadrado de $n, ya que se envió por referencia.
echo $val; // 25
//La variable $n contendrá el mismo valor ya que se envía por valor.
echo '<br>'.$n; // 5
?>

Valores de argumentos predeterminados

Una función puede definir valores predeterminados para argumentos escalares( el valor
predeterminado debe ser una expresión constante). cuando se emplean argumentos predeterminados,
cualquiera de ellos debería estar a la derecha de los argumentos no predeterminados.

Ejemplo 5

<?php
function comprar_calzado($marca = "nike")// valor redeterminado
{
return "Comprar un calzado marca: “. $marca."<br>”;
}
echo comprar_calzado();
echo comprar_calzado (“converse”);
echo comprar_calzado (" ");
?>

En php también se puede asignar valores no escalares como array y del tipo especial null como
valores predeterminados.

Ejemplo 6
<?php
function comprar_calzado($marca = array("nike"), $distribuidor = NULL)
{
$verifi = is_null($distribuidor) ? " Artesanos" : $distribuidor;//is_null función que permite
verificar si un variable es nula o no
$mensaje=”Marcas zapatos deportivos: “.implode(“ ‘,’ “,$marca).” distribuido por:
“.$verifi.“<br>”; // implode sirve para unir elementos de un array en una cadena
return $mensaje;
}
echo ver_calzado();
echo ver_calzado(array("nike", "converse",”adidas”), "shoes box");

?>
Algunas Funciones nativas utilizadas de PHP

round()
Esta función nos permitirá hacer redondeo, osea recibirá como parámetro un número y si el valor
después del punto (o de la coma) es menor a 50 redondeará para abajo, de lo contrario lo hará un
número más.

<?php
$decimal = 2.49;
$decimal2 = 2.55
redondeado = round($decimal);
redondeado 2= round($decimal2);
echo " $decimal redondeado es: ". $redondeado; // El resultado es 2
echo " $decimal2 redondeado es: ". $redondeado2; // El resultado es 3
?>

floor()
Esta función también hará un redondeo pero siempre para abajo.
ceil()
Si en cambio queremos que el redondeo sea siempre para arriba deberíamos usar ceil():

<?php
$decimal = 2.5;
redondeado = floor($decimal);
redondeado 2= ceil($decimal);
redondeado3 = round ($decimal);
echo " $decimal redondeado con la funcion floor es: ". $redondeado; //resultado 2
echo " $decimal redondeado con la función ceil es: ". $redondeado2; //resultado 3
echo " $decimal redondeado función round es: ". $redondeado3; // resultado 3
?>

rand()
La función rand() es una de las más útiles que hay. Esta función generará un número al azar que
irá desde un rango desde/hasta. Por ejemplo si quisiéramos devolver un número desde el 1 hasta el
5 (inclusive):
<?php
$numero_al_azar = rand(1, 5);
echo $numero_al_azar; //delvolvera cualquiere numero comprendido entre 1 y 5
?>

Is_null() en PHP.
La función is_null() devuelve true si el valor de una variable se ha establecido explícitamente en
NULL . De lo contrario, simplemente devuelve false
strtoupper()
Convierte una cadena en mayúscula
strtolower()
Esta función es lo contrario a la anterior, convertirá una cadena pero en minúsculas
ucfirst()
En este caso, esta función sólo nos convertirá la primer letra de una cadena en mayúscula:
<?php
$cadena = "diego";
$cad_mayuscula=strtoupper($cadena) //delvolvera DIEGO
echo $cad_mayuscula;
$cadena1 = "CARUPANO"
$cad_minuscula=strtolower($cadena1); // devolvera carupano
echo $cad_minuscula;
$cadena2 = ucfirst($cadena); // devolvera Diego
echo $cadena2;
?>

ucwords()
En este caso, esta función recibirá una cadena y convertirá en mayúscula los primeros caracteres
de cada palabra.

<?php
$palabra = 'diego alejandro marcano rojas';
$nombre_completo = ucwords($palabra); //delvolvera Diego Alejandro Marcano Rojas
echo $nombre_completo;
?>

strlen()
Nos dará la cantidad de caracteres que tiene una cadena

<?php
$cadena = 'diego alejandro marcano rojas';
$cantidad = strlen($cadena); // devolvera 29
echo $cantidad;
?>

substr()
Esta función nos permitirá seleccionar cuántos caracteres queremos mostrar de una cadena. Recibe
tres parámetros, el primero es el la cadena en sí, el segundo es a partir de qué caracter queremos
que se muestre (empieza desde 0) y el tercero hasta cuál.
<?php
$cancion = 'De aquel amor de música ligera, nada nos libra, nada más queda';
$cancion_cortada = substr($cancion, 0, 11);
echo $cancion_cortada;
?>

trim()
Ésta función elimina los espacios en las cadenas tanto al principio como al final :

<?php
$cadena = ' Diego ';
$cadena_cortada = trim($cadena);
echo $cadena_cortada;
?>

str_replace()
La función str_replace() nos permitirá buscar una cadena específica y reemplazarla por otra.

<?php
$texto= 'Los zapaticos me aprietan, las medias me dan calor';
$texto_mod = str_replace('zapaticos', 'calzones', $texto);
echo $texto_mod; // mostrara Los calzones me aprietan, las medias me dan calor
?>

var_dump()
La función var_dump() es muy útil en tiempo de desarrollo a la hora de testear datos ya sean de
una variable o de lo que devuelve una función. Estya función nos devolverá la estructura de una
variable cualquiera:

<?php
$nombre = 'Diego';
$edad = 13;
$logico = true;
$deportes = array('futbol', 'basket', 'tenis');
echo '<pre>';
var_dump($nombre) . '<br />'; // devuelve string 5
var_dump($edad) . '<br />'; // int(13)
var_dump($logico) . '<br />'; // devuelve bool(true)
var_dump($deportes) . '<br />'; // devuelve deportes(3) {
[0]=>
string(5) "futbol"
[1]=>
string(5) "basket"
[2]=>
string(5) "tenis"
}
echo '</pre>
?>
sort()
La función sort() permite ordenar un array alfabéticamente, vale aclarar que el valor del parámetro
se hace por referencia, por tanto éste se modificará directamente:

<?php
$nombres = array('Juan', 'Pedro', 'Maria', 'Jorge', 'Ana');
sort($nombres);
foreach($nombres as $item){
echo $item . '<br />';
}
?>
Esto imprimirá la lista ordenada de nombres:
Ana
Jorge
Juan
Maria
Pedro

rsort()
Funciona igual que sort(), sólo que el orden lo hace de forma descendente:

<?php
$nombres = array('Juan', 'Pedro', 'Maria', 'Jorge', 'Ana');
rsort($nombres);
foreach($nombres as $item){
echo $item . '<br />';
}
?>
El resultado es:
Pedro
Maria
Juan
Jorge
Ana

count()
Devuelve la cantidad de posiciones que tiene un array.

<?php
$nombres = array('Juan', 'Pedro', 'Maria', 'Jorge', 'Ana');
$nombres_total = count($nombres); // devuelve 5
echo $nombres_total;
?>

explode()
La función explode() convertirá un string en un array indicándole como referencia un valor que
permitirá separar las distintas posiciones. Dicho de otra manera la función de explosión se utiliza
para dividir una cadena en texto más pequeño y cada ruptura ocurre en el mismo símbolo, este
símbolo se conoce como delimitador, es decir, rompe una cadena en una matriz.
sintaxis
explote (separador, cadena, límite)

Ejemplo Dada la cadena 'Argentina - Bolivia - Brasil - Chile - Paraguay - Venezuela' se desea
convertir esto en un array en donde cada posición será un país. Usar el delimitador ‘-‘.

<?php
$paises_cadena = 'Colombia - Ecuador - Peru - Venezuela';
$paises_arreglo = explode('-', $paises_cadena);
foreach($paises_arreglo as $pais){
echo $pais . '<br />';
}
?>
El resultado será entonces:
Colombia
Ecuador
Peru
Venezuela

implode()
Esta función es lo inverso a explode(), convierte un array (matriz) en un string, y concatenará la
cadena con las distintas posiciones por un delimitador(separador), es decir, une elementos de un
array en un string.
Toma una matriz de cadenas y las une en una sola usando un delimitador (cadena que se utilizará
entre las piezas) de su elección. Sintaxis:
implode(separador, matriz)

Ejemplo
<?php
$paises_arreglo = array('Colombia', 'Ecuador', 'Peru', 'Venezuela');
$paises_cadena = implode(' - ', $paises_arreglo);
echo $paises_cadena;
?>
El resultado será:
Colombia - Ecuador - Peru - Venezuela

sqrt()
Permite obtener la raíz cuadrada de numero dado. Sintaxis
sqrt ( float $arg )
donde;
arg, es el argumento a procesar, es decir el numero.
Esta función devuelve la raíz cuadrada de arg o el valor especial NAN para números negativos.

Ejemplo

<?php
$num=16
echo sqrt($num); // devuelve 4
echo sqrt(10); // devuelve 3.16227766 ...
?>

Pow()
Permite obtener la potencia de un numero. Sintaxis:
pow ( number $base , number $exp )
donde;
base es el numero que sera elevado
exp es el numero al cual se elevara la base
Ejemplo: 42 en este caso 4 es la base y 2 el exponente
Esta función devolverá el valor de la base elevado a la potencia de exp
De PHP 5.6 en adelante, se puede utilizar del operador **.

<?php

echo(pow(4, 2)); // devuelve 16


echo pow(-1, 20); //devuelve 1
echo pow(0, 0); //devuelve 1
echo pow(10, -1); // devuelve 0.1
?>

También podría gustarte