Nueva pregunta

Pregunta:

Fecha: 02-06-2018 15:00:16 (En Español)

Fin de semana lúdico con PHP (Participa en este simple juego)[Resuelta]

Hola a todo.

En esta oportunidad les comparto un mini desafío que es el siguiente.



Algunos jugando aprenden.

Deja tu respuesta en un comentario.

En el transcurso del domingo se dejará la respuesta del juego

Saludos.
Etiquetas: Pregunta - Script PHP Votos: 4 - Respuestas: 6 - Vistas: 14 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 02-06-2018 15:43:34 Hola, genial la prueba, yo lo haría así:

    
    $saludo = function($X=null){
                    if($X==null){
                        return "Disculpe no se ha enviado información";
                    }
                    return "Hola ".$X;
                };
    
    echo $saludo();
    //Imprime: Disculpe no se ha enviado información
    echo $saludo("PHP Central");
    //Imprime: Hola PHP Central
    echo $saludo("Participante");
    //Imprime: Hola Participante
    echo $saludo("Carlos Quintero");
    //Imprime Hola Carlos Quintero
    echo $saludo;
    //Imprime: Recoverable fatal error: Object of class Closure could not be converted to string in XXX
    


    Saludos
      Votos: 4 - Link respuesta
     
  • Fecha: 02-06-2018 16:06:49 Muchas gracias Carlos por participar a este mini desafío del juego proporcionando un codigo legible y explicado.

    Dejo el link en PhpFiddle con tu codigo para quienes quieran ejecutarlo y hacer pruebas.

    Espero que alguien más partícipe exponiendo su solución al reto.

    Que tengas un buen finde Carlos.

    Saludos
      Votos: 4 - Link respuesta
     
  • Fecha: 03-06-2018 15:17:25 Dando por terminado este desafío.

    Agradezco a Carlos quien ha sido el único que ha aceptado y resuelto el desafío planteado.





    Código:
    <?php
    $saludo = function($nombre = null){
                return 'Hola '.$nombre . PHP_EOL;
        };
    
    
    echo $saludo('PHP Central');
    // Imprime: Hola PHP Central
    
    echo $saludo('participante');
    // Imprime: Hola participante
    
    echo $saludo();
    var_dump($saludo);
    



    El tema trataba funciones anónimas en PHP. Las funciones anónimas están implementadas utilizando la clase Closure.

    Fernando había realizado un aporte en la comunidad sobre CLOSURE / Funciones Anónimas en PHP.

    Si desean puede aportar algo extra en los comentarios.

    Muchas gracias.

    Saludos
      Votos: 3 - Link respuesta
     
  • Fecha: 04-06-2018 08:41:26 Uff muy bueno!!!
    Llegué tarde pero aqu;i está mi grano de arena:

    También puedes hacerlo utilizando closures. El siguiente ejemplo te da idea del poder del concepto.

    <?php
    declare(strict_types=1);
    
    /**
     * Saluda/Despide a alguien
     *
     * @param string $salute
     *
     * @return Closure
     */
    function politeFunction(string $salute = '')
    {
        return function (string $who = 'Mundo') use ($salute) {
            echo "{$salute} {$who}";
        };
    }
    
    $saludo = politeFunction('Hola');
    $despedida = politeFunction('Bye');
    
    echo $saludo();
    
    echo $saludo('PHP Central');
    //Imprime: Hola PHP Central
    echo $saludo('Participante');
    //Imprime: Hola Participante
    
    echo $despedida('PHP Central');
    //Imprime: Bye PHP Central
    echo $despedida('Participante');
    //Imprime: Bye Participante
    
      Votos: 3 - Link respuesta
     
  • Fecha: 07-06-2018 15:01:34 Ernesto No has llegado tarde, todos los aportes son muy bien recibidos ya que muchos aprendemos de ellos.

    Muy interesante tu resolución, lo probare. +1

    Si puedes explicar el codigo seria genial para quienes comienzan ;)



    Saludos
      Votos: 1 - Link respuesta
     
  • Fecha: 07-06-2018 17:13:22 Hola a todos

    Para darle un sentido práctico de las funciones anónimas presentare el siguiente ejemplo sencillo a modo ilustrativo. Con todos los códigos para quienes recién comienzan con POO puedan tomarlos y hacer sus propias prácticas.

    Si has trabajado con programación orientada a objetos en PHP y eres un poco ordenado seguramente crearás un fichero independiente para cada una de las clases. Es la opción más recomendable. Sin embargo ello te obligará a utilizar de forma reiterada la función require_once() o similar para cargar cada una de las clases en los distintos ficheros de tu proyecto, lo cual resulta tedioso y desorganizado.

    Para resolver este problema utilizaremos la carga automática de clases con spl_autoload_register().

    No se utilizara namespace para que sea más simple de entender.


    Supongamos que tenemos una carpeta (Directorio) llamada Ejemplo dentro de ella otra carpeta llamada Clases que contiene los siguientes archivos.
    Archivo: Persona.php

    <?php
    class Persona {
        static public function mostrar( $mensaje = 'Cri cri')
        {
            echo 'La persona dijo: '.$mensaje.'<br/>';
        }
    }
    

    Archivo: Sistema.php

    <?php
    class Sistema {
        static public function mostrar( $mensaje = 'Ups')
        {
            echo 'El sistema dijo: '.$mensaje.'<br/>';
        }
    }
    


    En la carpeta raíz Ejemplo contiene el siguiente script que hace es la carga automática de clases .
    Archivo: index.php
    <?php
    function autoload($clase){
         require_once 'Clases/'.$clase.'.php';
    }
    spl_autoload_register('autoload');
    
    Persona::mostrar('Hola');
    Sistema::mostrar('Bienvenido');
    


    Hasta aquí nada novedoso.
    Ahora si utilizaremos una función anónima en el archivo index.php dentro de spl_autoload_register()

    <?php
    // Carga automática de clases con función anónima
    spl_autoload_register(function ($clase){
         include 'Clases/'.$clase.'.php';
    });
    
    Persona::mostrar('Hola');
    Sistema::mostrar('Bienvenido');
    


    Como resultado en pantalla sería:
    La persona dijo: Hola
    El sistema dijo: Bienvenido

    Compartido en GitLab


    Espero que sirva de algo el ejemplo.

    Si alguien tiene alguno otro uso práctico de las funciones anónimas con codigo es bienvenido.

    Saludos
      Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com