Я никогда раньше не видел ничего подобного.
$dbTable = new $dbTable();
Мы храним экземпляр объекта внутри $ dbTable?
Преобразуем ли мы строку в объект?
Вот контекст:
protected $_dbTable;
public function setDbTable($dbTable)
{
if (is_string($dbTable)) {
$dbTable = new $dbTable();
}
if (!$dbTable instanceof Zend_Db_Table_Abstract) {
throw new Exception('Invalid table data gateway provided');
}
$this->_dbTable = $dbTable;
return $this;
}
Из руководства по php здесь: http://www.php.net/manual/en/language.oop5.basic.php
Мы можем прочитать:
Если строка, содержащая имя class используется с новым, новым экземпляром этого класса будет создан. Если класс находится в пространстве имен, его полностью полное имя должно использоваться при выполнении this.
Но это похоже на операцию конкатенации между строкой и этими "вещами": () - без использования точки. Так что я все еще не уверен, что здесь происходит.