Nueva pregunta

Pregunta:

Fecha: 04-03-2017 07:51:35 (En Español)

Llamar función desde otra hoja PHP[Resuelta]

tengo esta linea el cual funciona en la misma hoja tengo en diferentes partes el mismo codigo sin problema;

quiero crear una función para incluirlo en varias partes pero cuando necesite modificar lo pueda hacer desde la funcion para que haga el cambio en las partes donde yo lo ingrese

<span class="hidden-xs">
<?php echo utf8_decode($row['nombre']);?>
</span>

esta es la forma en que lo estoy haciendo:

  function setearVariable(){
   	echo utf8_decode($row['nombre']);
   }

   //llamando la funcion
   setearVariable();



pero me sale el siguiente error:

Notice: Undefined variable: row in C:\xampp\htdocs\master\controller\function.php on line 8


no he podido hacerlo agradesco su apoyo
Etiquetas: PHP - Pregunta Votos: 0 - Respuestas: 3 - Vistas: 16 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 04-03-2017 09:54:23 Bastantemente Sencillo Compañero Carlos Monroy basta con usar getters y setters que en casi toda la programacion hay:

    functions.php // aqui podrian ir todas las funciones a llamar y ya luego la incluimos en el archivo correspondiente a usar una de ella veamos:
    <?php
     function setearVariable($row){
           return utf8_decode($row);
     }
    


    archivoxphp.php
    <?php
    include('functions.php'); // incluimos la archivo en el que hemos hecho nosotros de nuestras funciones
    echo setearVariable($row['nombre']); // nos devovera lo que le pasamos en la funcion pero con un ligero cambio x la function setearVariable() que nos retorna lo mismo pero en utf8_decode
    


    asi de simple espero le haiga ayudado, y a comprender n.n/

    Saludos Compañero De PHPCentral :D
      Votos: 1 - Link respuesta
     
  • Fecha: 05-03-2017 20:36:03 Hola Carlos,
    El problema que tienes en la línea que muestras es porque cuando definiste el cuerpo de la función no proporcionaste acceso a la variable que quieres modificar.

    Esto nada tiene que ver con el tema de Setters y Getters (que son tema de POO).

    Supongo eres nuevo en el tema de programación así que te recomiendo que leas acerca de cómo declarar funciones, parámetros de funciones y scope de variables. Esos tres temas (que pertenecen al mundo de la programación en general) van a ayudarte a clarificar el por qué de tu error.

    No creo que sea necesario hacer un wrapper sobre una función nativa de PHP pero tú sabrás tus razones.

    Aquí una explicación de tu código y más abajo te explico cómo debe de quedar.

    function setearVariable() { //La función no recibe parámetros
        /**
          * Ahora imprimes el resultado de la función utf8_decode sobre una variable con scope local que no ha sido definida.
          * La función no conoce nada acerca de la variable $row por lo tanto es indefinida para el scope local
          */
        echo utf8_decode($row['nombre']);
    } //No regresas nada, por lo tanto semánticamente has creado un procedimiento :P
    


    Te aconsejo dos cosas:

    1. El nombre de tu función debe ser claro. En tu caso podría llamarse decodificaVariable
    2. De preferencia tus funciones no impriman nada. Delega la impresión a tu vista o al flujo principal.

    Para que tu función trabaje de manera adecuada tienes que prporcionarle todo lo que necesita saber para ejecutarse exitosamente:

    /**
      * Decodifica una variable
      *
      * @param string $variable Variable a decodificar
      * @return string La variable decodificada
      */
    function decodificaVariable ($variableADecodificar) {
        return utf8_decode($variableADecodificar);
    }
    
    //Llamamos la función sobre el resultado devuelto por la consulta
    $variableLimpia = decodificaVariable($row['nombre']);
    
    //Imprimimos el resultado
    echo $variableLimpia;
    
      Votos: 3 - Link respuesta
     
  • Fecha: 29-03-2017 17:19:25 perfecto muchas gracias por sus respuestas me sirvio bastante, gracias por el apoyo   Votos: 1 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com