Что означает использование знака доллара после $ this-> в PHP?

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
6
0
2 862
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

echo ($obj->myvar);

####

$k = "myvar";
echo ($obj->$k);

Хорошо, это то, о чем я подумал с самого начала - тогда мне нужно найти, откуда эта переменная.

Steven Oxley 20.10.2008 09:55

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

Однако это не совсем так. Ответ Джона Милликина правильный.

Garrett Albright 27.05.2011 17:44

Ответ Джона более полный, но Паоло прав. Это переменная с различными именами. Если вы хотите мыслить более конкретно с точки зрения использования ООП, вы также можете назвать это свойством переменной (которое описано в ссылке Паоло).

pierce.jason 08.05.2014 00:16

Другие вопросы по теме