Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Fatal error: Using $this

Estas en el tema de Fatal error: Using $this en el foro de PHP en Foros del Web. Estoy intentando instalar un script que por lo visto es medio viejo y tengo problemas en algunas sentencias a la hora de ejecutar los pasos ...
  #1 (permalink)  
Antiguo 15/01/2015, 13:31
 
Fecha de Ingreso: enero-2010
Mensajes: 52
Antigüedad: 14 años, 10 meses
Puntos: 0
Fatal error: Using $this

Estoy intentando instalar un script que por lo visto es medio viejo y tengo problemas en algunas sentencias a la hora de ejecutar los pasos

He logrado solucionar la mayoria pero no logro solucionar este

Código:

Fatal error: Using $this when not in object context in /home/xxxxxx/public_html/libs/PEAR/Net/SMTP.php on line 307

la linea en cuestion tiene este codigo

   static function connect($timeout = null, $persistent = false)
    {
        $result = $this->_socket->connect($this->host, $this->port, $persistent, $timeout);
        if (PEAR::isError($result)) {
            return PEAR::raiseError('Failed to connect socket: ' .
                                    $result->getMessage());
        }

        if (PEAR::isError($error = $this->_parseResponse(220))) {
            return $error;
        }
        if (PEAR::isError($error = $this->_negotiate())) {
            return $error;
        }

        return true;
    } 
Alguien me puede ayudar a corregir esto
Gracias
  #2 (permalink)  
Antiguo 15/01/2015, 14:17
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 10 meses
Puntos: 12
Respuesta: Fatal error: Using $this

Dónde defines estos objetos
Código PHP:
Ver original
  1. $this->_socket
  2. $this->host
  3. $this->port

estás seguro que están bien declarados?
  #3 (permalink)  
Antiguo 15/01/2015, 14:32
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: Fatal error: Using $this

Utiliza PHPMailer: https://github.com/PHPMailer/PHPMailer o SwiftMailer: https://github.com/swiftmailer/swiftmailer
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #4 (permalink)  
Antiguo 15/01/2015, 16:30
Avatar de Reedyseth  
Fecha de Ingreso: enero-2009
Ubicación: Chihuahua, México
Mensajes: 419
Antigüedad: 15 años, 9 meses
Puntos: 36
Respuesta: Fatal error: Using $this

Cita:
Fatal error: Using $this when not in object context in /home/xxxxxx/public_html/libs/PEAR/Net/SMTP.php on line 307
Su pongo que estas accediento al método estático de la clase pero al no se una instacia y querer usar $this te dice que no se encuentra en un contexto de objeto por que estas en un método estático.

La forma correcta de hacer referencias a métodos y propiedades dentro de un método estático es con el operado de resolución de ámbito (scope resolution operator) ::

entonces en vez de usar $this utilizas algo así:

Código PHP:
static function connect($timeout null$persistent false)
{
    
$result selft::_socket->connect(selft::hostselft::port$persistent$timeout);
    if (
PEAR::isError($result)) {
        return 
PEAR::raiseError('Failed to connect socket: ' .
                                
$result->getMessage());
    }

    if (
PEAR::isError($error selft::_parseResponse(220))) {
        return 
$error;
    }
    if (
PEAR::isError($error selft::_negotiate())) {
        return 
$error;
    }

    return 
true;

__________________
Reedyseth
Te ayudo? No olvides dar un +
blog:http://behstant.com/blog
En el blog:Tutoriales de Desarrollo Web PHP, Javascript, BD y más.
  #5 (permalink)  
Antiguo 15/01/2015, 16:43
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Fatal error: Using $this

¿Se han dado cuenta, aquellos que responden si leer bien, que se trata de una librería de PEAR que obviamente no conviene modificar?

Vamos, que es perdida de tiempo pelear con tecnología de antaño, es totalmente lógico que dentro de un método estático no se pueda acceder a $this porque no es una instancia.

Cita:
Alguien me puede ayudar a corregir esto
No, nadie lo hará.

Entiende que se trata de código de terceros, que además de ser viejo te esta dando mas problemas que soluciones.

¿Para qué quieres corregir una pieza de código tan defectuosa?

Mejor hagan caso y usen librerías modernas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: fatal, html
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 12:08.