Aprendiendo PHP, parte 11: Funciones nativas

En el post pasado aprendimos para qué son las funciones y cómo crearlas. Pero en PHP ya existen en memoria funciones que nos permiten realizar distintas operaciones al invocarlas. A continuación veremos algunas de las funciones más utilizadas:

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 = 1.49;
 $decimal_redondeado = round($decimal);
 echo $decimal_redondeado;
?>

En este caso el resultado será:

1

Pero si en cambio modificamos el número decimal por 1.75:

<?php
 $decimal = 1.75;
 $decimal_redondeado = round($decimal);
 echo $decimal_redondeado;
?>

Entonces el resultado será:

2

Esta función es muy útil a la hora de sacar promedios.

 

floor()

Esta función también hará un redondeo pero siempre para abajo, osea que si tenemos esto:

<?php
 $decimal = 1.50;
 $decimal_redondeado = floor($decimal);
 echo $decimal_redondeado;
?>

Nos devolverá por pantalla:

1

 

ceil()

Si en cambio queremos que el redondeo sea siempre para arriba deberíamos usar ceil():

<?php
 $decimal = 1.50;
 $decimal_redondeado = ceil($decimal);
 echo $decimal_redondeado;
?>

En donde el resultado será por supuesto:

2

 

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 al 9 (inclusive):

<?php
 $numero_al_azar = rand(1, 9);
 echo $numero_al_azar;
?>

A mí me devolvió:

3

Pero puede devolver cualquiera de los número de los rangos comprendidos.

 

strtoupper()

Convierte una cadena en mayúscula;

<?php
 $palabra = 'Me encantan las arepas venezolanas.';
 $palabra_mayuscula = strtoupper($palabra);
 echo $palabra_mayuscula;
?>

Esto devolverá por pantalla:

ME ENCANTAN LAS AREPAS VENEZOLANAS.

 

strtolower()

Esta función es lo contrario a la anterior, convertirá una cadena pero en minúsculas:

<?php
 $palabra = 'No GRITES, habla bajito.';
 $palabra_minuscula = strtolower($palabra);
 echo $palabra_minuscula;
?>

Esto nos mostrará por pantalla:

no grites, habla bajito.

 

ucfirst()

En este caso, esta función sólo nos convertirá la primer letra de una cadena en mayúscula:

<?php
 $palabra = 'fernando';
 $nombre = ucfirst($palabra);
 echo $nombre;
?>

Devolverá por pantalla:

Fernando

 

ucwords()

En este caso, esta función recibirá una cadena y convertirá el mayúscula los primeros caracteres de cada palabra:

<?php
 $palabra = 'fernando gonzalo gaitan';
 $nombre_completo = ucwords($palabra);
 echo $nombre_completo;
?>

Esto va a imprimir:

Fernando Gonzalo Gaitan

 

strlen()

Nos dará la cantidad de caracteres que tiene una cadena:

<?php
 $cancion = 'De aquel amor de música ligera, nada nos libra, nada más queda';
 $cantidad_de_caracteres = strlen($cancion);
 echo $cantidad_de_caracteres;
?>

Esto da como resultado:

64

 

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;
?>

Esto nos dará como resultado:

De aquel am

 

trim()

Ésta es otra de las funciones más usadas de PHP, se trata de una función simple, pero muy útil, la misma cortará los espacios en las cadenas tanto adelante como atrás:

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

Para comprobar su correcto funcionamiento podemos utilizar la función strlen() y ver el comportamiento de trim():

<?php
 $cadena = ' Hola ';
 $cadena_cortada = trim($cadena);
 echo strlen($cadena) . '<br />';
 echo strlen($cadena_cortada) . '<br />';
?>

Esto por pantalla devolverá:

6
4

Como vemos la segunda variable tendrá sólo 4 caracteres ya que los caracteres de adelante y atrás se eliminarán.

Sin embargo trim() no sólo funciona para eliminar espacios al principio y al final, puede eliminar cualquier tipo de caracter si le agregamos un segundo parámetro con el mismo:

<?php
 $cadena = '///Hola///';
 $cadena_cortada = trim($cadena, '/');
 echo $cadena_cortada;
?>

Al imprimir el resultado por pantalla veremos:

Hola

 

str_replace()

La función str_replace() nos permitirá buscar una cadena específica y reemplazarla por otra, por ejemplo podríamos reemplazar guiones bajo por guiones del medio:

<?php
 $frase = 'Marge_creo_que_odio_a_Mickael_Jackson.';
 $frase_modificada = str_replace('_', '-', $frase);
 echo $frase_modificada;
?>

El resultado será:

Marge-creo-que-odio-a-Mickael-Jackson.

Pero como dijimos antes, se pueden modificar cadenas, osea no sólo un caracter:

<?php
 $frase = 'Una manzana y una manzana son dos manzanas';
 $frase_modificada = str_replace('manzana', 'naranja', $frase);
 echo $frase_modificada;
?>

Esto imprime por pantalla:

Una naranja y una naranja son dos naranjas

 

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. Esta función nos devolverá la estructura de una variable cualquiera:

<?php
 $cadena = 'Manzana';
 $numero = 5;
 $valor_logico = true;
 $coleccion = array('Azul', 'Rojo', 'Verde');
 echo '<pre>';
 var_dump($cadena) . '<br />';
 var_dump($numero) . '<br />';
 var_dump($valor_logico) . '<br />';
 var_dump($coleccion) . '<br />';
 echo '</pre>';
?>

Esto devuelve:

string(7) "Manzana"
int(5)
bool(true)
array(3) {
  [0]=>
  string(4) "Azul"
  [1]=>
  string(4) "Rojo"
  [2]=>
  string(5) "Verde"
}

 

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

 

shuffle()

Desordena las posiciones de un array. También se pasa por referencia:

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

Por ejemplo en mi caso me ha devuelto:

Maria
Ana
Jorge
Juan
Pedro

 

array_push()

Agrega una posición nueva al final de un array, recibe dos parámetros, el mismo array y el valor nuevo:

<?php 
 $nombres = array('Juan', 'Pedro', 'Maria', 'Jorge', 'Ana');
 array_push($nombres, 'Carlos');
 foreach($nombres as $item){
    echo $item . '<br />';
 }
?>

El resultado es:

Juan
Pedro
Maria
Jorge
Ana
Carlos

 

array_unshift()

A diferencia de array_push() agrega una nueva posición, pero al principio:

<?php 
 $nombres = array('Juan', 'Pedro', 'Maria', 'Jorge', 'Ana');
 array_unshift($nombres, 'Carlos');
 foreach($nombres as $item){
    echo $item . '<br />';
 }
?>

En este caso el resultado será:

Carlos
Juan
Pedro
Maria
Jorge
Ana

 

in_array()

Buscará un valor dentro de un array, si lo encuentra devuelve true y sino false:

<?php 
 $nombres = array('Juan', 'Pedro', 'Maria', 'Jorge', 'Ana');
 $nombre_a_buscar = 'Jorge';
 if(in_array($nombre_a_buscar, $nombres)){
    echo 'El nombre se encuentra en la lista';
 }else{
    echo 'El nombre NO se encuentra en la lista';
 }
?>

En nuestro caso como el nombre ‘Jorge’ está en el array devolverá:

El nombre se encuentra en la lista

 

count()

Devuelve la cantidad de posiciones que tiene un array:

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

El resultado es:

5

 

explode()

La función explode() convertirá un string en un array indicándole como referencia un valor que permitirá separar las distintas posiciones. Por ejemplo si tuviéramos una cadena:

$paises_cadena = 'Argentina - Bolivia - Brasil - Chile - Paraguay - Uruguay';

Y quisiéramos convertir esto en un array en donde cada posición será un país, deberíamos usar un delimitador, que en este caso es el signo ‘-‘:

<?php 
 $paises_cadena = 'Argentina - Bolivia - Brasil - Chile - Paraguay - Uruguay';
 $paises_arreglo = explode('-', $paises_cadena);
 foreach($paises_arreglo as $item){
    echo $item . '<br />';
 }
?>

El resultado será entonces:

Argentina 
Bolivia 
Brasil 
Chile 
Paraguay 
Uruguay

 

impode()

Esta función es lo inverso a explode(), convierte un array en un string, y concatenará la cadena con las distintas posiciones por un delimitador:

<?php 
 $paises_arreglo = array('Colombia', 'Ecuador', 'Peru', 'Venezuela');
 $paises_cadena = implode(' - ', $paises_arreglo);
 echo $paises_cadena;
?>

El resultado será:

Colombia - Ecuador - Peru - Venezuela

 

En PHP existen muchísimas funciones, las que vimos son sólo algunas, pero hay muchas más. Cuando necesitamos realizar alguna operación es cuestión de buscar en el manual de PHP:

https://php.net/

Saludos!

 

Anterior: Aprendiendo PHP, parte 10: Funciones

Siguiente: Aprendiendo PHP, parte 12: Fechas

 

3 Replies to “Aprendiendo PHP, parte 11: Funciones nativas”

  1. En el caso de ucfirst() se especifica que esta función sólo nos convertirá la primer letra de una cadena en mayúscula. Pero una cadena es todo un texto. Cómo hacer para que cada frase dentro de la cadena ponga en mayúscula después de encontrar un punto? Que respete ortografía pues ucfirst solo afecta a la primera letra del texto y quiero introducirlo en un receptor de comentarios.

    1. Fijate acá:

      http://php.net/manual/fr/function.ucfirst.php

      La función es:

      function ucsentence ($string){
      $string = explode (‘.’, $string);
      $count = count ($string);
      for ($i = 0; $i < $count; $i++){ $string[$i] = ucfirst (trim ($string[$i])); if ($i > 0){
      if ((ord($string[$i]{0})<48) || (ord($string[$i]{0})>57)) {
      $string[$i] = ‘ ‘ . $string[$i];
      }
      }
      }
      $string = implode (‘.’, $string);
      return $string;
      }

      Saludos!

      1. Gracias Fernando.
        Encontré también esta que funcionó perfecto:
        http://www.forosdelweb.com/f18/capitalizacion-textos-php-1054375/#post4449169

        Mi adaptación es que el comentario que llega todo en mayúsculas primero lo convierto y luego capitalizo las primeras letras después del punto. Queda así:
        $opinion = ucfirst(strtolower($contenido));

        function capitaliza_frases($opinion){

        $cadenas = explode(‘.’,$opinion);

        $cadena_final=»;
        foreach ($cadenas as $cadena){
        $cadena_sin_espacios = ltrim($cadena);
        // no uso esa cantidad, seria mejor si la respetara
        $cant_espacios = strlen($cadena)-strlen($cadena_sin_espacios);
        $cadena_final .= ‘. ‘.ucfirst($cadena_sin_espacios);

        }

        return substr($cadena_final,1);
        }
        $comenta_bien = capitaliza_frases($opinion);

Comments are closed.