Приветствую коллеги. Помогите разобраться в тонкостях языка. Второй час не могу найти ничего даже близко похожего. Мануал с SO все уже вычитал)) Ошибка следующая:
PHP Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR), expecting ')', Судя по всему в этом месте $this
->db
Код:
class Orders {
function __construct(Database $db) {
$this->db = $db;
}
function createOrder(array $data) {
$this->db->transaction(function($this->db) { // ошибка в этой строке
$id1 = $this->db->insert('...');
$id2 = $this->db->insert('...');
$res = $this->db->update('...');
});
}
}
$orders = new Orders($db);
function createOrder(array $data) {
$db = $this->db;
$this->db->transaction(function($db) { // Так работает
$this->db->transaction(function() use ($db) { // И так тоже
$id1 = $this->db->insert('...');
$id2 = $this->db->insert('...');
$res = $this->db->update('...');
});
}
Это нафиг не удобно вообще, в каждом методе прегонять в локальную переменную $db = $this->db, сейчас их 5, а когда будет 25, это же кабзда.