Что означает использование знака доллара после $ this-> в PHP? - PullRequest
5 голосов
/ 20 октября 2008

Меня немного смущает какой-то синтаксис PHP, с которым я столкнулся. Вот пример:

$k = $this->_tbl_key;

if( $this->$k)
{
   $ret = $this->_db->updateObject( $this->_tbl, $this, $this->_tbl_key, $updateNulls );
}
else
{
    $ret = $this->_db->insertObject( $this->_tbl, $this, $this->_tbl_key );
}

Мой вопрос в основном, что означает $this->$k? Я подумал, что это может означать переменную-член, которая идет под именем того, что находится в $this->_tbl_key, но как это будет работать? Можно ли добавить переменные-члены в класс во время выполнения?

Ответы [ 2 ]

20 голосов
/ 20 октября 2008

Он найдет значение «k» и будет рассматривать его как имя переменной. Эти два образца одинаковы:

echo ($obj->myvar);

####

$k = "myvar";
echo ($obj->$k);
5 голосов
/ 20 октября 2008

Я считаю, что это случай переменных переменных .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...