Ситуация: нужно выполнить 2 селекта с одинаковыми условиями WHERE $this->db->where(); ... $a = $this->db->get(); $b = $this->db->get(); Условия WHERE будут работать и для первого и для второго запроса или требуется $this->db->where(); $a = $this->db->get(); $this->db->where(); $b = $this->db->get();
гм а я вот незнаю ... явно под этим this какой-то эскульбилдер или кто-то наследованный от него - но вот кто .. и как работает хз ...
$this - некий объект. db - объект для работы с БД. where() - судя по всему, метод который устанавливает условие для запроса. Вывод - для ответа на вопрос нужно смотреть документацию по db, или его исходники.
Подозреваю, что сие есть ничто иное как Active Record от фреймворка CodeIgniter. http://code-igniter.ru/user_guide/datab ... ml#caching Используйте кеширование запросов. З.Ы. Я хороший телепат? Я старался!
это ссылка на вызывающий объект PHP: <?php class Object{ public function f(){ if(is_object($this)){ var_dump($this); } } } $o = new Object(); $o->f(); ?>
$this - всегда текущий объект. PHP: <? $this = 'preved'; // Fatal error: Cannot re-assign $this гораздо более существеннен вопрос - что есть db?
Class Unknown { public $db; public function __construct(){ $this->db = $this; } public function where(){ return ($required == $a) ? $a : $b; } }
PHP: <?php class this { public function this() { $this->this($this); } } $_this = new this(); $_this->this();