@ 2015-04-24T00:08:51Z <?php
error_reporting(-1);
ini_set('display_errors', 1);
class system_tags {
function __call($name, $params) {
return 'TAG "' . $name . '" WAS HERE';
}
}
class App {
function run() {
// Prerequisites.
$system_tags = new system_tags();
$core = new \stdClass();
$core->tags = array(
'hello' => 'HELLO!',
'world' => 'WORLD!',
);
$this->template = 'Blah blah {hello} blah blah {world}.';
$this->withStrReplace($core, $system_tags);
$this->template = 'Blah blah {hello} blah blah {world}.';
$this->withRegexReplaceCallback($core, $system_tags);
}
function withStrReplace($core, $system_tags) {
foreach($core->tags as $tag_name => $tag_method) {
$this->template = str_replace(
'{' . $tag_name . '}',
$system_tags->{$tag_method}(),
$this->template
);
}
}
function withRegexReplaceCallback($core, $system_tags) {
$callback = static function ($matches) use (& $tag_method, $system_tags) {
return $system_tags->{$tag_method}();
};
foreach($core->tags as $tag_name => $tag_method) {
$this->template = preg_replace_callback(
'/\{' . preg_quote($tag_name) . '\}/',
$callback,
$this->template
);
}
echo $this->template . "\n<br>";
}
}
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 5.4.0 - 5.4.45 , 5.5.24 - 5.5.35 , 5.6.8 - 5.6.28 , 7.0.0 - 7.0.20 , 7.1.0 - 7.1.25 , 7.2.0 - 7.2.33 , 7.3.0 - 7.3.33 , 7.4.0 - 7.4.33 , 8.0.0 - 8.0.30 , 8.1.0 - 8.1.28 , 8.2.0 - 8.2.18 , 8.3.0 - 8.3.6 Output for 5.3.0 - 5.3.29 Parse error: syntax error, unexpected T_FUNCTION, expecting T_PAAMAYIM_NEKUDOTAYIM in /in/aT2IU on line 43
Process exited with code 255 . Output for 4.4.2 - 4.4.9 , 5.1.0 - 5.1.6 , 5.2.0 - 5.2.17 Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/aT2IU on line 16
Parse error: syntax error, unexpected T_STATIC in /in/aT2IU on line 43
Process exited with code 255 . Output for 4.3.0 - 4.3.1 , 4.3.5 - 4.3.11 , 4.4.0 - 4.4.1 , 5.0.0 - 5.0.5 Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/aT2IU on line 16
Parse error: parse error, unexpected T_STATIC in /in/aT2IU on line 43
Process exited with code 255 . Output for 4.3.2 - 4.3.4 Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/aT2IU on line 16
Parse error: parse error in /in/aT2IU on line 43
Process exited with code 255 . preferences:dark mode live preview
276.11 ms | 401 KiB | 327 Q