Ver Mensaje Individual
  #24 (permalink)  
Antiguo 29/06/2012, 09:16
salomon26
 
Fecha de Ingreso: mayo-2012
Ubicación: En mi casa
Mensajes: 22
Antigüedad: 12 años
Puntos: 1
Respuesta: ¿Desaconsejado el uso de variables globales?

Cita:
Iniciado por GatorV Ver Mensaje
spl_autoload_register (sin parámetros) por defecto registra un autoloader compatible con [URL="https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md"][B]PSR-0[/B][/URL] que ya te había dicho desde un inicio.

Sí te da ese error deberías de publicar tu código o lo que estés haciendo ya que es claro, estas tratando de llamar a un método de un objeto en un no objeto, por eso te marca ese fatal error.

Saludos.
Sí, pero al parecer la dirección está mal porque no los incluye, pero de la forma que vi en php.net sí.

El código:

index.php
Código PHP:
Ver original
  1. include('includes/common.php');
  2. echo $Core->gethola();

common.php
Código PHP:
Ver original
  1. spl_autoload_register(function ($clase) {
  2.     include(dirname(__FILE__) . '/clases/' . $clase . '.class.php');
  3. });
  4.  
  5. $Core = new Core();
  6. $User = new User();

core.class.php
Código PHP:
Ver original
  1. Class Core
  2. {
  3.     private $User;
  4.    
  5.     public function setUser($User)
  6.     {
  7.         $this->user = $User;
  8.     }
  9.     public function gethola()
  10.     {
  11.         return $this->user->mifuncion();
  12.     }
  13. }

user.class.php
Código PHP:
Ver original
  1. Class User
  2. {
  3.     private $Core;
  4.    
  5.     public function setCore($Core)
  6.     {
  7.         $this->core = $Core;
  8.     }
  9.     public function mifuncion()
  10.     {
  11.         return 'Hola Mundo';
  12.     }
  13. }
En esta también está core aunque no se use una función de dicha clase todavía, pero lo conservo porque si no existiera el error sí se usaría.

Si el 'Hola Mundo' estuviera en la función "gethola()" sí se mostraría, pero el error aparece cuando se llama a la función "mifuncion()" de otra clase, en este caso "User".

No uso namespaces, ya que en las pruebas tengo dos clases y nada más (además de que con él y sin él el error está). Cuando tengo un error mucho tiempo al final dejo de pensar con claridad.