Programación

09/06/2010

OOP – PHP: Diferencia entre $this y self::

More articles by »
Written by: AgeValed
Tags: , , , , ,

Buenas estaba con una duda, si se que a estas alturas no debería tener este tipo de dudas, pero bue surgió por bloqueo mental y otras cosas, pero bue..

Cual es la diferencia entre $this y self:: ?

Uno usa $this para referenciar al objeto actual, y se utiliza self:: para referenciar la clase actual. Se utiliza $this->nombre para nombres no estáticos y se utiliza self::nombres para nombres estáticos.

Un ejemplo claro seria:

 

class funcion {
   private $valor_no_estatico = 1;
   private static $valor_estatico = 2;

   function __construct() {
     echo $this->valor_no_estatico . ' ' . self::$valor_estatico;
   }
}

Espero que hayan logrado sacar sus dudas! Cualquier cosa pregunten.



About the Author

AgeValed
Pablo Ignacio de la Vega Ibañez, también conocido en algunos lugares como AgeValed, el creador de este blog. Actualmente estoy trabajando como Líder Técnico y Supervisor de Equipo en el área de desarrollo PHP.




 
 

 
PHP

Doctrine2 – Getting Started Issues

Luego de querer instalar y hacer funcionar doctrine en nuestro querido y amado Windows, me encontré con un par de problemas, y por lo que vi en internet a varios le paso lo mismo, vamos a tomar como ejemplo el Doctrine –...
by AgeValed
1

 
 
PHP

Zend Framework – Almacenamiento de sesión en base de datos

En este mini tutorial voy a mostrarles como guardar la sesión en base de datos con ZF 1, esto es muy util para manejo de sesiones en un entorno con múltiples servidores. Material Relacionado Zend_Session_SaveHandler_DbTable Z...
by AgeValed
0

 
 

PHP Conference Argentina 2013

El 4 y 5 de Octubre se celebrará, en la Ciudad de Buenos Aires (Argentina), la PHP Conference Argentina, edición local de la conferencia PHP más popular. Esta edición no solamente está destinada a los programadores PHP, ...
by AgeValed
0

 

 

PHP 5.4.0 liberado!

Les comento que ya se encuentra la nueva versión de PHP liberada, la versión 5.4.0, luego de varios updates que se hicieron a la versión PHP 5.3 ya contamos con nuevas versión que incluye (según ellos) un gran núme...
by AgeValed
0

 
 
PHP

PHP – Errores

En este resumen voy a escribir sobre los el control y registro de los errores en PHP. PHP nos permite definir nuestras reglas para controlar los errores, crear errores personificados o como serán registrados/notificados. Tipos...
by AgeValed
0

 




3 Comentarios


  1. RT @agevaled: OOP – PHP: Diferencia entre $this y self:: http://bit.ly/aNKUDU


  2. Nicolas Villalba

    Muy gráfico el ejemplo y la explicación, estoy leyendo un libro a ahora mismo sobre el tema, googleando vine a dar con esto. Pero la explicación que self referencia la clase y $this el objeto en sí, es medio ambigua al menos para mi, de ultima el operador de resolución de ámbito servirá para acceder a variables estáticas.


  3. Gus Tavo Maiorana

    hay una regla mucho más sencilla para comprender esto: $this->algo significa que ha sido instanciado el objeto previamente y sus funcionalidades son dinámicas, mientras que $self::algo se invoca directamente a la clase sin haber sido instanciado el objeto correspondiente (sin utilizar el comando "new"), es decir, su funcionalidad no es dinámica, sino estática… El primero llama al objeto instanciado, el segundo llama a la clase no instanciada, por eso es que sus valores se mantienen estáticos.
    $persona = new $persona();
    $persona->getNombreXid(5);
    echo $persona->nombre;
    dentro de la clase, invoca a $this->nombre = $this->getNombreXid($id);
    en cambio, para la Empresa, cuyos valores no cambian:
    echo $Empresa::nombre;
    que invoca a un atributo invariable que no ha sido instanciado, internamente se llama a $self::nombre = Perez y Asociados



Leave a Reply

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.