Duplicar posible:
PHP: self vs this
Hola, Podría ayudarme a entender el significado de la PHP nombre de la variable $this
?
Gracias por su ayuda.
Duplicar posible:
PHP: self vs this
Hola, Podría ayudarme a entender el significado de la PHP nombre de la variable $this
?
Gracias por su ayuda.
$this
se refiere a la clase que se encuentra.
Por ejemplo
Class Car {
function test() {
return "Test function called";
}
function another_test() {
echo $this->test(); // This will echo "Test function called";
}
}
Espero que esto ayude.
Es una forma de referenciarse a sí mismo ... o llamar a métodos o leyendo variables de sí mismo. – jodm
en realidad, self se refiere a la clase actual en la que se encuentra. $ This se refiere a la instancia de objeto actual de la clase en la que se encuentra. –
No 'echo' Test funcionó llamado "' ya que está accediendo al 'test' variable miembro (que no existe) en oposición al método 'test()'. Tendría que cambiarlo a 'echo $ this-> test()' ... – ircmaxell
Es posible que desee echar un vistazo a las respuestas en In PHP5, what is the difference between using self and $this? When is each appropriate?
Básicamente, $this
se refiere al objeto actual.
$this
es una variable protegida que se utiliza dentro de un objeto, $this
le permite acceder a un archivo de clase internamente.
Ejemplo
Class Xela
{
var age; //Point 1
public function __construct($age)
{
$this->setAge($age); //setAge is called by $this internally so the private method will be run
}
private function setAge($age)
{
$this->age = $age; //$this->age is the variable set at point 1
}
}
Es básicamente un problema de alcance variable $this
sólo se permite dentro de un objeto que se ha iniciado y se refiere a ese objeto y sus padres sólo, puede ejecutar métodos privados y establecer las variables privadas donde como fuera del alcance no puedes.
también la palabra clave self
es muy similar, aparte de que se refiere a los métodos estáticos dentro clase, estática, básicamente, significa que no se puede utilizar $this
ya que no es un objeto, sin embargo, debe utilizar self::setAge();
y si eso setAge
método se declara estático entonces no se puede llamar desde un instante de ese objeto/object
Algunos enlaces para que usted pueda empezar:
Aunque entiendo que está explicando a un principiante de OOP, no se refiera a los objetos como clases. $ esto se usa para referirse a propiedades y métodos de objeto, mientras que self :: se usa para referirse a propiedades y métodos de clase. Creo que es importante explicar la diferencia entre los dos. – Craige
Posible duplicado: http://stackoverflow.com/questions/151969/php-self-vs-this. Además, por favor no seas demasiado lindo en las preguntas. ;) – birryree
¡Enhorabuena por ampliar su conocimiento a la edad de 12 años! Pero como eso no es relevante para la pregunta, ¿podrías editar la pregunta para eliminarla? –
Parece que las personas en Stack Overflow no saben a qué 'tengo 12 años y a qué se refiere esto'. – JAL