Вы должны создать функцию / метод, который обернет ее.
class PregCallbackWrap {
private $dbcon;
function __construct($dbcon) { $this->dbcon = $dbcon; }
function callback(array $matches) {
/* implementation of your callback here. You can use $this->dbcon */
}
}
$dbcon = /* ... */
preg_replace_callback('/PATTERN/',
array(new PregCallbackWrap($dbcon), 'callback'), $subject,);
В PHP 5.3 вы можете просто сделать:
$dbcon = /* ... */
preg_replace_callback('/PATTERN/',
function (array $matches) use ($dbcon) {
/* implementation here */
},
$subject
);