2015-11-09 2 views
0
$this->dbAdapter

является экземпляром Zend\Db\Adapter\Adapter

Я пробовал:

$this->dbAdapter::QUERY_MODE_EXECUTE // unexpected '::' (T_PAAMAYIM_NEKUDOTAYIM) 

${this->dbAdapter}::QUERY_MODE_EXECUTE // unexpected '->' (T_OBJECT_OPERATOR) 

${$this->dbAdapter}::QUERY_MODE_EXECUTE // Object of class Zend\Db\Adapter\Adapter could not be converted to string 

$this->{dbAdapter::QUERY_MODE_EXECUTE} // Class "Local\Namespace\dbAdapter" not found 

Кажется, все, что я могу сделать, это:

$dbAdapter = $this->dbAdapter; 
... 
$dbAdapter::QUERY_MODE_EXECUTE; 

ответ

1

Я считаю, что правильный способ ссылаться на это:

use Zend\Db\Adapter\Adapter; 

Adapter::QUERY_MODE_EXECUTE 

или

\Zend\Db\Adapter\Adapter::QUERY_MODE_EXECUTE 

Его константа, поэтому она необязательно должна поступать из самого экземпляра. Причина, по которой вы получаете ошибку T_PAAMAYIM_NEKUDOTAYIM, состоит в том, что :: является ссылкой на статическую область, которую вы не можете использовать в сочетании с $ this.

+0

* фирменный знак * - да, вы правы – HorusKol

Смежные вопросы