No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Parámetros en las funciones

15/25
Recursos

Aportes 30

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

un ejemplo super sencillo y mi pequeño aporte.
los parámetros son datos que pasamos a la función para que esta los utilice y nos devuelva un resultado a partir de ellos.

<?php 
function suma($numero1, $numero2){
    echo $numero1 + $numero2;
}

suma(2,3);

?>

Aquí mi aporte.
Con el tema del foreach había hecho (guiándome por un compa) un buscador tipo diccionario. Español - Inglés.
Acá está dentro una función.

function buscar_dia($dia_buscado){

    //Convertimos a minúsculas
    $dia_buscado = strtolower($dia_buscado);
    // Primer letra en mayuscula para que coincida con array
    $dia_buscado = ucfirst($dia_buscado);

    $dias = array(
        "Lunes" => "Monday",   
        "Martes" => "Tuesday",
        "Miercoles" => "Wednesday",
        "Jueves" => "Thursday",
        "Viernes" => "Friday",
        "Sabado" => "Saturday",
        "Domingo" => "Sunday"
    );
    
    // recorremos el array 
    foreach($dias as $español => $ingles){
        if($dia_buscado === $español){
            echo "\n\t El día $dia_buscado se escribe en inglés $ingles ";
            break;
        }
    }

    return $dia_buscado;

}

$dia_buscado = readline("\nEscribe el día de la semana que quieras saber como se escribe en inglés: ");

buscar_dia($dia_buscado);

Si en lugar de sumar dos números, queremos sumar varios números, podemos crear una función que reciba una lista de números.

function sum(...$args)
{
    return array_sum($args);
}
echo sum(1,2,3,4) // 10;

Mi humilde aporte, decidi que el sistema decidiera con un rand si era pro o no :V

ValidaEstudianteLeged(rand(0, 40000));

function ValidaEstudianteLeged($rankPlatzi)
{
    if ($rankPlatzi >= 20000) {
        echo "tienes un puntaje de $rankPlatzi, Wow eres todo un crak!  <br>";
    } else {
        echo "tienes un puntaje de $rankPlatzi, Sigue practicando bro, pronto lo lograras! <br>";
    }
}

Adjunto mi codigo:

Lo hice de tal forma para que se repita hasta que el usuario decida salir del programa

<?php

function es_estudiante_legend($platzi_rank){
    if ($platzi_rank >= 20000){
        echo "Eres un estudiante legend \n";
    }
    else{
        echo "Lo siento, aun no alcanzas el nivel legend \n";
    }
}

$active = true;

while($active == true){
    $rank_input = readline("Digita tu rango platzi: ");
    es_estudiante_legend($rank_input);
    echo "\n";
    $continuar = readline("Digite 0 para finalizar el programa, de lo contario digite cualquier tecla para continuar \n");
    echo "\n";
    if ($continuar == 0){
        $active = false;
    }
}

Con el uso de parámetros potenciamos aún más a nuestras funciones ya que podemos hacer el tratamiento de esa información que entra de una forma especial y eso las hace más dinámicas al momento de regresar ciertos valores.
Comparto el ejemplo que hice donde la función imprime el la tabla de multiplicar del número que recibió como argumento
.

Me encantó el readline 😃

Este es mi aporte, lo modifiqué de tal forma que no puedan salir hasta que los estudiantes tengan su rank de legend, jejeje.

<?php

function estudianteLegend($puntos_platzi) {
    if ($puntos_platzi >= 20000) {
        echo "Eres un estudiante LEGEND!!!\n";
        $status = true;
        return $status;
    } else {
        echo "Lo sentimos, aún no alcanzas el nivel LEGEND.\n";
        $status = false;
        return $status;
    }
}

do {
    $puntos_platzi = (int) readline("Ingresa tus puntos de Platzi: ");
    $status_legend = estudianteLegend($puntos_platzi);
} while ( !$status_legend );
Mi aporte :D ```js function es_estudiante_legend($platzi_rank) { if ($platzi_rank >= 20000){ echo "Eres un estudiante legend 🙂\n"; }else{ echo "Aun no eres un estudiante legend 😫\n"; } } do { $platzi_rank_user = (int) readline("Introduzca su rank de Platzi: "); es_estudiante_legend($platzi_rank_user); $program_continue = strtolower(readline("¿Desea terminar de ejecutar el programa? Y/N: ")); // echo "Su respuesta fue $program_continue"; } while ($program_continue != "y"); echo "\n"; ``` ![](https://static.platzi.com/media/user_upload/imagen-3b671a85-ca58-44c3-952f-dd75e0d38825.jpg)
```js = 2000) ? 'Eres un estudiante Legend' : 'Lo sentimos, aun no alcanzas el nivel legend, sigue adelante!'; echo $resul; } es_estudiante_legend($dato = readline('Ingrese la cantidad que tenga? :')); ?> ```\= 2000) ? 'Eres un estudiante Legend' : 'Lo sentimos, aun no alcanzas el nivel legend, sigue adelante!';    echo $resul;}es\_estudiante\_legend($dato = readline('Ingrese la cantidad que tenga? :'));?>

Hice la funcion de la clase anterior pero con parámetros:

<?php

$min = readline("Por favor ingrese el numero minimo ");
$max = readline("Por favor ingrese el numero maximo ");


function poketontos ($min , $max){
    $numero_aleatorio = rand( $min , $max);


    switch ($numero_aleatorio) {
        case 1: 
            echo "Pikachu";
            break;
        case 2: 
            echo "Charmander";
            break;
        case 3: 
            echo "Mewto";
            break;
        default:
            echo "Lo siento, no hay pokemon pa ti";
            break;
    }
    echo "\n";

}
for( $i = 0; $i < 20 ; $i++ ){
    poketontos($min , $max);
}

pipipi

PILAS CON EL USO DE LOS WHILE!! primer aviso jajaja xD

me gustó mucho la forma de usar varios ciclos para reciclar código.. me ha dado varias ideas

function platzi_legend($platzi_student)
{
    if($platzi_student >= 20000){
        echo "Felicidades eres un estudiante legend de Platzi! " . "\n";
    } else {
        echo "Ánimo, consigue más puntos para ser estudiante legend! Tú puedes! " . "\n";
    }
}

$contador = 0

do {
    $platzi_student = readline("Cuántos puntos tienes en platzi: ");
    platzi_legend($platzi_student);
    $contador++;
} while ($contador < 3);

echo "\n";

Se me ocurrió que pudiera decir cuanto “resta” para alcanzar o llegar a ese puntaje. y coloque otras condicionales jeje.

function estudiante($rank_legend) {

$resta = 20000 - $rank_legend;

    if ($rank_legend >= 20000) {
        echo "¡Eres un estudiante Legend! \n";
    }
    elseif($rank_legend <= 10000) {
        echo "Debes esforzarte mas para ser Legend, recuerda te falta $resta para poder alcanzar a ser un estudiante Legend";
    }
    elseif($rank_legend <= 15000 && $rank_legend > 10000) {
        echo "Exelente, tienes un gran puntaje, pero aun te falta $resta puntos, tu puedes.";
    }
    else {
        echo "Lo sentimos, te falta $resta para poder alcanzar el nivel Legend. \n";
    }
}

do {
    $mi_rank = (int) readline ("Inseta tu puntaje: ");
    estudiante($mi_rank);
} while (true);

Un pequeño reto que quise hacer!

<?php
function cesarEncription($text, $key){
    $cesar = array();
    $text = str_split(strtolower($text));
    $abc =str_split("abcdefghijklmnopqrstuvwxyz");
    #convert $text and $abc to arrays usign str_split.

    foreach ($text as $pos => $value) {
        #iterate over array $text
        if($value == " "){
            array_push($cesar, " ");
        } # add a blankspace to $cesar if there is one on $text
        else{
            $pos = array_search($value, $abc);#saves the position of $value in $abc array
            $pos += $key; #it add the key for the encription to the position
            if($pos >= count($abc)){ #it verifies if $pos it is more that the lenght of $abc
                $pos -= count($abc);  #it corrects the pos in case of exceeding the lenght
            }
            array_push($cesar, $abc[$pos]);#push each letter, now cifrated.
        }     
    }
    return(implode($cesar)); #implode converts  $cesar to str. 
}
echo cesarEncription("mensaje", 2)."\n";

modifique un poco el codigo para a agregar otros nivel como nub pro y legend

<?php
function es_estudiante_legend($platzi_rank) {
  if( $platzi_rank >= 1000 && $platzi_rank <= 9999){
    echo "eres un nub \n";
    echo"\n";

    }
  else if ( $platzi_rank >= 10000 && $platzi_rank <= 19999) {
    echo "eres nivel pro \n";
    echo"\n";
  }
  else if($platzi_rank >= 20000){
    echo "¡Eres un estudiante Legend!\n";
    echo"\n";
  }else{
    echo "Lo sentimos, aun no alcanzas ningun nivel\n";
    echo"\n";
  }
}

do {
  $platzi_rank_user = (int) readline("Por favor, dinos cual es tu Platzi Rank:   \n");
  es_estudiante_legend($platzi_rank_user);
} while(true);

echo "\n";

Resultado de esta clase 💚

<?php 

function student_legend ($platzi_rank) {
  
  if ($platzi_rank >= 20000 ) {
  echo "Eres Estudiante Legend de Platzi 🎈\n";
  }
  else  { 
  echo "No tienes el nivel vatooooooo 😁\n";
  }
}

do {
$entrada = (int) readline("Dame tu Puntos en el Platzi Rank 🔪:");

student_legend($entrada);
}while ($entrada >= 0);

echo "\n";


?>
function tabla2 (){
do{
    $i+=1;
    $resultado=$i*$x;
    echo $resultado. "\n";

}while($resultado<20);
}

aqui otro ejemplo de un do while en una función para generar la tabla del 2

Para llamar a una función debemos simplemente escribir su nombre y poner entre paréntesis los valores con los que deseamos que trabaje, Además, si la función está hecha para retornar un resultado y queremos hacer uso del mismo, sería conveniente almacenar el mismo en una variable o usarlo directamente como condición de algún comando.

Aspctos importante:

  • Aunque la definición de la función está al principio del código, la misma es ignorada por el procesador hasta que se produce una llamada. Es decir que la primera instrucción ejecutable de nuestro ejemplo es la asignación de la variable $calificacion.

  • Las llamadas a la función en_rango son usadas como condición del comando if. Es decir que dependiendo del valor retornado por la función en cada caso, se ejecutarán o no los comandos correspondientes.

  • Los parámetros usados en cada llamada pueden ser bien variables, valores explícitos o incluso expresiones más complejas.

Aquí un aporte simple de una función que realiza un saludo o despedida a una persona específica a partir de los parámetros que se le otorgue

<?php

function saludo($nombre,$despedida = false){
    $palabra = "Hola";
    if($despedida) {
        $palabra = "Adiós";
    }
    echo "$palabra, $nombre!";
};

saludo("Carlos"); // Hola, Carlos!

saludo("Carlos",true); //Adiós, Carlos!

saludo("Juan"); // Hola, Juan!

?>```
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>new Reto</title>
</head>
<body>
    <header>
        <h1>¿Cuanto años vale una Decada?</h1>
        <form method="$_GET">
            <label>Cual es el valor de una decada</label>
            <input type="number" name="decada" />
            <button name="query">Calcular</button>
        </form>
    </header>

<?php 
    function cuantoEsUnaDecada($decada) {
        $decada = 10;
        if(!isset($_GET['query'])){
            echo "Coloque un valor";
        }elseif($_GET['decada'] == $decada){
            echo "!CORRECTO¡ este valor es lo que corresponde a una decada, ". $decada. " años.";
        }elseif($_GET['decada'] != $decada) {
            echo "Noo, esto no es el valor de una decada :(";
        }
    }
    echo cuantoEsUnaDecada(null);
?>
</body>
</html>

no me funciona el salto de linea (\n). me toca con la etiqueta <br> las pruebas las estoy haciendo por navegador y no consola.

Algo que recomiendo bastante es tipar los datos en php, eso nos ayudará bastante que en caso de error solucionamos más rápido, cosas que imposibilita el tipado dinámico. esto es posible si no estoy mal desde la versión 7.0.

function es_estudiante_legend(int $platzi_rank) { ... }

<?php
function es_estudiante_legend ($platzi_ranck) {
if ($platzi_ranck >= 20000) {
echo “Eres un estudiante Legend \n”;
}
else {
echo “Lo sentimos, aun no alcanzas el nivel Legend \n”;
}
}
$estudiante = (int) readline("Por favor ingresa el numero de estudiantes a verificar: ");
$contador=0;
do {
$contador++;
$puntos = (int)readline("Por favor ingresa tus puntos de platzi: ");
es_estudiante_legend($puntos);
} while ($contador < $estudiante);

echo “\n”;

Eres un buen profesor

no sabia que después de los 20,000 puntos del ranking te convertias en un estudiante legend, ahora no lo quiero, lo necesito XD

Vamos por ese estudiante legend !!!

![](https://static.platzi.com/media/user_upload/image-158862ad-23ba-4149-80ce-7a1bdf8183cc.jpg)