Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Pseudo zmienna $this w funkcji klasy - problem ze zrozumieniem kodu
tomazzi
post 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.
Go to the top of the page
+Quote Post
Daiquiri
post 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 smile.gif
Go to the top of the page
+Quote Post
mortus
post 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'.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.04.2024 - 18:35