[PHP] Pseudo zmienna $this w funkcji klasy - problem ze zrozumieniem kodu |
[PHP] Pseudo zmienna $this w funkcji klasy - problem ze zrozumieniem kodu |
21.12.2012, 19:14:47
Post
#1
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 14.09.2012 Ostrzeżenie: (0%) |
Mam taki kawałek kodu:
Kod abstract class Expression { private static $keycount=0; private $key; abstract function interpret( Context $context ); function getKey() { if ( ! isset( $this->key ) ) { self::$keycount++; $this->key=self::$keycount; } return $this->key; } } class LiteralExpression extends Expression { private $value; function __construct( $value ) { $this->value = $value; } function interpret( Context $context ) { $context->replace($this, $this->value ); } } $context = new Context(); $literal = new LiteralExpression( 'four'); $literal->interpret( $context ); Nie rozumiem parametru $this funkcji replace() w LiberalExpression::interpret. Co dokładnie dostaje w pierwszym parametrze funkcja replace(). Pierwszy raz spotykam się ze zmienną $this bez odwołania do konkretnej zmiennej. |
|
|
21.12.2012, 19:52:34
Post
#2
|
|
Grupa: Administratorzy Postów: 1 552 Pomógł: 211 Dołączył: 7.07.2009 Skąd: NJ |
$this zwraca bieżący obiekt, zobacz sobie var_dump() dla $this
|
|
|
21.12.2012, 19:53:08
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) |
$this to nic innego jak instancja klasy LiteralExpression, w tym przykładzie będzie to obiekt $literal, czyli taki, którego właściwość value ma wartość 'four'.
|
|
|
Wersja Lo-Fi | Aktualny czas: 24.04.2024 - 18:35 |