Según la documentación de PHP, la función call_user_func(), sirve para utilizar callbacks dentro del lenguaje, como primer parámetro reci...

Christian Alvarenga

Christian Alvarenga

Pregunta
studenthace 4 años

Según la documentación de PHP, la función call_user_func(), sirve para utilizar callbacks dentro del lenguaje, como primer parámetro recibe la función que recibiría como parámetro el callback y, a partir del segundo en adelante le podemos incrustar el callback como tal y otros parámetros que se necesiten.

El profesor solo manda un Array, no entiendo esto. 😭

2 respuestas
para escribir tu comentario
    Christian Alvarenga

    Christian Alvarenga

    studenthace 4 años

    Genial pero, no me queda muy claro lo de index, es decir, ¿más adelante definiremos un método llamado index?

    Carlos Eduardo Gomez García

    Carlos Eduardo Gomez García

    teacherhace 4 años

    ¡Hola! No te preocupes, es un asunto de PHP POO, te explico:

    La función

    call_user_func
    necesita que le pases una función para llamar, pero en este caso estamos usando POO, por lo que no tenemos funciones simples, sino que tenemos métodos, es decir, no podemos hacer esto:

    call_user_func('index')

    El método index pertenece a una clase de controlador, por lo que deberíamos hacer algo como esto:

    call_user_func($controller->index)

    Pero esto no es posible porque en PHP esta sintaxis no es válida, es decir, daría un error. Y tampoco lo podemos poner entre comillas:

    call_user_func('$controler->index')

    Porque PHP buscaría una función que se llame literalmente $controller->index (no ejecutaría el código para acceder a la clase, sino que buscaría literalmente una función que se llame así, y no existe y daría error).

    ¿Entonces cómo le hacemos para pasarle un método a la función'n

    call_user_func
    ? Simple, le mandamos un array:

    call_user_func([new $controller, $method])

    En PHP es una convención que si tú mandas un array en donde debería ir una función PHP lo va a tomar como que es un método de una clase e internamente mandará a llamar a ese método de esa clase. Así es la sintaxis de PHP :D

Curso de Introducción a Frameworks de PHP

Curso de Introducción a Frameworks de PHP

Construye aplicaciones web profesionales con PHP utilizando frameworks como Laravel y Symfony. Aprende a manejar estructuras, peticiones, controladores y vistas para optimizar tu desarrollo. Ideal para quien ya programa en PHP.

Curso de Introducción a Frameworks de PHP
Curso de Introducción a Frameworks de PHP

Curso de Introducción a Frameworks de PHP

Construye aplicaciones web profesionales con PHP utilizando frameworks como Laravel y Symfony. Aprende a manejar estructuras, peticiones, controladores y vistas para optimizar tu desarrollo. Ideal para quien ya programa en PHP.