Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Problema con funciones y clases... ayudenme por favor...

Estas en el tema de Problema con funciones y clases... ayudenme por favor... en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Miren estos códigos... En realidad mi script es mucho más grande pero hice estos ejemplos para que se entienda el problema: Tengo dos archivos uno ...
  #1 (permalink)  
Antiguo 06/10/2004, 07:47
 
Fecha de Ingreso: octubre-2004
Mensajes: 2
Antigüedad: 20 años, 3 meses
Puntos: 0
Problema con funciones y clases... ayudenme por favor...

Miren estos códigos...
En realidad mi script es mucho más grande pero hice estos ejemplos para que se entienda el problema:
Tengo dos archivos uno se llama clase y otro funciones.
Bueno esto me devuelve
Fatal error: Call to a member function on a non-object funciones.php on line 4

CLASE.PHP
<?php
class lala {
function nonoa($que) {
$this->nono = $que;
}
}
?>

FUNCIONES.PHP
<?php
require("class.php");
$clase = new lala;
function jojo() {
$clase->nonoa("joj");
echo $clase->nono;
}
jojo();
?>

SE ENTIENDE EL PROBLEMA NO???
Entonces me doy cuenta que llamo a la función NONOA de la clase LALA pero, es esto posible? Meter un objeto dentro de una función? Según la página de PHP.NET se puede pero ya vi en varios lugares que tira el error ese que no se puede llamar a un miembro función o un no-objeto.

Espero que tengan una respuesta . Gracias de antemano.
  #2 (permalink)  
Antiguo 06/10/2004, 08:00
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 6 meses
Puntos: 16
Hola,

Un objeto no es muy distinto a una variable. Y las variables tienen un ambito: http://www.php.net/manual/en/languag...bles.scope.php . Resumiendo, dentro de la funcion no puedes acceder directamente a variables/objetos creados fuera de la funcion. En la pagina del manual te dan opciones para poder acceder a una variable creada fuera de la funcion. Tambien deberias mirar el tema de las referencias en el manual, para poder pasar el objeto original y no una copia.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:02.