Меня немного смущает некоторый синтаксис 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, но как это будет работать? Можно ли добавлять переменные-члены в класс во время выполнения?






Он найдет значение «k» и обработает его как имя переменной. Эти два образца одинаковы:
echo ($obj->myvar);
####
$k = "myvar";
echo ($obj->$k);
Я считаю, что это случай переменные переменные.
Однако это не совсем так. Ответ Джона Милликина правильный.
Ответ Джона более полный, но Паоло прав. Это переменная с различными именами. Если вы хотите мыслить более конкретно с точки зрения использования ООП, вы также можете назвать это свойством переменной (которое описано в ссылке Паоло).
Хорошо, это то, о чем я подумал с самого начала - тогда мне нужно найти, откуда эта переменная.