Я видел код, который содержал следующую строку:
preg_replace_callback($regex, 'TextileParser::replaceAnchor', $text);
, где TextileParser::replaceAnchor() - приватный статический метод.
TextileParser::replaceAnchor()
Да, это возможно.
Просто проверьте это сами: <?php</p> <p>class TestCallBack { private static function found_number($num) { return "-".$num[0]."-"; } public function find($Str) { return preg_replace_callback('/[0-9]/', 'TestCallBack::found_number', $Str); } } // Exemple $Tester = new TestCallBack; $Result = $Tester->find("54321"); var_dump($Result);
<?php</p> <p>class TestCallBack { private static function found_number($num) { return "-".$num[0]."-"; } public function find($Str) { return preg_replace_callback('/[0-9]/', 'TestCallBack::found_number', $Str); } } // Exemple $Tester = new TestCallBack; $Result = $Tester->find("54321"); var_dump($Result);
на сайте php, есть такой пример:
http://www.php.net/manual/en/function.preg-replace-callback.php#96899
Я бы предположил, что если это на php.net, то это хорошо.