- preg_replace_callback: documentation ( source)
- sprintf: documentation ( source)
<?php
echo Module::work('hello world.'), "\n";
echo MyModule::work('hello world.');
abstract class Module
{
private static $mask = '[[[%s]]]';
public static function work($it) {
return preg_replace_callback('~\w+~', array('self', 'self::replace'), $it);
}
private static function replace($matches) {
return sprintf(self::$mask, $matches[0]);
}
}
abstract class MyModule extends Module
{
protected static $mask = '{{{%s}}}';
private static function replace($matches) {
return sprintf(self::$mask, $matches[0]);
}
}