$ эта переменная в PHP - PullRequest
       34

$ эта переменная в PHP

1 голос
/ 06 декабря 2009

Я только начал знакомиться с ОО-функциями PHP, и я хотел бы спросить вас кое-что о переменной $this. Прежде всего, если класс, в котором я использую ключевое слово $this, не имеет определенной переменной свойства foo, означает ли это, что используется следующий код:

$this->foo = 5;
echo $this->foo;

создаст свойство foo для объекта во время выполнения, как в JavaScript? Какова видимость этого свойства?

Ответы [ 4 ]

6 голосов
/ 06 декабря 2009

Да, это создаст свойство foo, и его видимость будет public (по умолчанию).

Вы можете проверить это довольно легко:

<?php
class Foo {
    public function setFoo($foo) {
        $this->foo = $foo;
    }
}

$f = new Foo();
$f->setFoo(5);
echo $f->foo;

Напечатает 5 без ошибок.

3 голосов
/ 06 декабря 2009

Стоит упомянуть магическую функцию __ get и __ set . Эти методы будут вызываться всякий раз, когда вызывается неопределенное свойство.

Это позволяет создавать довольно крутые и динамичные объекты. Идеально подходит для использования с веб-сервисами с неизвестными свойствами.

1 голос
/ 06 декабря 2009

Да, конечно, будет.

0 голосов
/ 06 декабря 2009

Свойства могут быть добавлены к любому объекту, независимо от его класса. Также возможно написать

$obj = new stdClass();
$obj->foo = 'bar';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...