3v4l.org

run code in 500+ PHP versions simultaneously
<?php $s = "/**\n". "* @changelog https://github.com/rectorphp/rector/blob/master/docs/rector_rules_overview.md\n". "*/\n"; $annotation = '@changelog'; var_dump(extractAnnotationFromClass($s, $annotation)); function extractAnnotationFromClass(string $docComment, string $annotation): ?string { // @see https://regex101.com/r/oYGaWU/1 $pattern = '#' . preg_quote($annotation, '#') . '\s+(?<content>.*?)$#m'; preg_match($pattern, $docComment, $matches); return $matches['content'] ?? null; }
Output for 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.34, 8.2.0 - 8.2.32, 8.3.0 - 8.3.4, 8.3.6 - 8.3.33, 8.4.1 - 8.4.24, 8.5.0 - 8.5.9
string(77) "https://github.com/rectorphp/rector/blob/master/docs/rector_rules_overview.md"
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 string(77) "https://github.com/rectorphp/rector/blob/master/docs/rector_rules_overview.md"

preferences:
107.99 ms | 1441 KiB | 4 Q