3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php $i=0; $time = microtime(true); while($i < 5000) { $i++; @preg_replace('/(^|[a-z])([A-Z])/e', 'strtolower(strlen("\\1") ? "\\1_\\2" : "\\2")', 'VeryLongClassName'); } $time = microtime(true) - $time; echo '1: ' . number_format($time, 3) ."\n"; $i=0; $time = microtime(true); while($i < 5000) { $i++; @preg_replace('/(?!^)[[:upper:]][[:lower:]]/', '$0', preg_replace('/(?!^)[[:upper:]]+/', '_'.'$0', 'VeryLongClassName')); } $time = microtime(true) - $time; echo '2: ' . number_format($time, 3) ."\n";
Output for 7.1.0
1: 0.003 2: 0.003
Output for 7.0.3, 7.0.5, 7.0.14
1: 0.006 2: 0.005
Output for 7.0.9
1: 0.005 2: 0.003
Output for 7.0.0, 7.0.2, 7.0.7 - 7.0.8
1: 0.004 2: 0.003
Output for 7.0.4, 7.0.6
1: 0.005 2: 0.004
Output for 7.0.1
1: 0.004 2: 0.004
Output for hhvm-3.12.0
1: 0.024 2: 0.004
Output for hhvm-3.10.0
1: 0.021 2: 0.004
Output for 5.6.28
1: -0.077 2: -0.025
Output for 5.6.23
1: 0.081 2: 0.015
Output for 5.4.1, 5.4.6, 5.5.28, 5.6.11, 5.6.22
1: 0.069 2: 0.014
Output for 5.5.29, 5.5.36 - 5.5.37, 5.6.21
1: 0.074 2: 0.014
Output for 5.4.17, 5.5.11, 5.6.20
1: 0.076 2: 0.015
Output for 5.6.19
1: 0.125 2: 0.014
Output for 5.6.6, 5.6.18
1: 0.071 2: 0.015
Output for 5.3.8, 5.6.12, 5.6.17
1: 0.070 2: 0.015
Output for 5.2.15, 5.5.2, 5.6.9, 5.6.16
1: 0.072 2: 0.014
Output for 5.5.23, 5.6.15
1: 0.078 2: 0.014
Output for 5.6.14
1: 0.088 2: 0.016
Output for 5.5.3, 5.5.13, 5.6.13
1: 0.067 2: 0.014
Output for 5.6.10
1: 0.073 2: 0.014
Output for 5.4.22, 5.5.14, 5.6.8
1: 0.077 2: 0.014
Output for 5.3.11, 5.4.11, 5.6.7
1: 0.070 2: 0.014
Output for 5.5.1, 5.6.5
1: 0.083 2: 0.014
Output for 5.6.4
1: 0.092 2: 0.016
Output for 5.6.3
1: 0.095 2: 0.016
Output for 5.6.2
1: 0.079 2: 0.014
Output for 4.4.1, 5.6.1
1: 0.091 2: 0.016
Output for 5.4.20, 5.4.32, 5.6.0
1: 0.071 2: 0.014
Output for 5.5.35
1: 0.081 2: 0.021
Output for 5.5.4, 5.5.34
1: 0.090 2: 0.016
Output for 5.5.33
1: 0.096 2: 0.014
Output for 5.5.32
1: 0.089 2: 0.015
Output for 5.5.9, 5.5.30 - 5.5.31
1: 0.068 2: 0.014
Output for 5.5.27
1: 0.066 2: 0.015
Output for 5.5.26
1: 0.075 2: 0.015
Output for 5.5.24 - 5.5.25
1: 0.069 2: 0.015
Output for 5.5.15, 5.5.22
1: 0.077 2: 0.015
Output for 5.5.21
1: 0.076 2: 0.014
Output for 5.2.1, 5.5.20
1: 0.082 2: 0.016
Output for 5.5.19
1: 0.081 2: 0.014
Output for 5.5.18
1: 0.098 2: 0.017
Output for 5.5.16
1: 0.080 2: 0.014
Output for 5.5.5, 5.5.12
1: 0.095 2: 0.017
Output for 5.5.10
1: 0.072 2: 0.015
Output for 5.1.3, 5.5.8
1: 0.088 2: 0.014
Output for 5.2.3, 5.5.7
1: 0.082 2: 0.014
Output for 5.5.6
1: 0.090 2: 0.017
Output for 5.5.0
1: 0.075 2: 0.014
Output for 5.4.45
1: 0.049 2: 0.011
Output for 5.4.44
1: 0.061 2: 0.013
Output for 5.2.9, 5.4.43
1: 0.058 2: 0.012
Output for 5.4.42
1: 0.052 2: 0.011
Output for 5.4.9, 5.4.12, 5.4.34, 5.4.41
1: 0.057 2: 0.013
Output for 5.3.29, 5.4.40
1: 0.059 2: 0.013
Output for 5.4.39
1: 0.057 2: 0.012
Output for 5.4.36, 5.4.38
1: 0.056 2: 0.013
Output for 5.4.27, 5.4.37
1: 0.064 2: 0.012
Output for 5.4.26, 5.4.35
1: 0.068 2: 0.013
Output for 5.2.5, 5.4.31
1: 0.061 2: 0.012
Output for 5.4.16, 5.4.30
1: 0.056 2: 0.012
Output for 4.3.11, 5.4.24, 5.4.29
1: 0.066 2: 0.012
Output for 5.4.28
1: 0.067 2: 0.012
Output for 5.4.25
1: 0.075 2: 0.013
Output for 5.1.5, 5.2.11, 5.4.14 - 5.4.15, 5.4.23
1: 0.066 2: 0.013
Output for 5.4.21
1: 0.067 2: 0.013
Output for 5.4.19
1: 0.060 2: 0.012
Output for 5.4.18
1: 0.079 2: 0.015
Output for 5.4.13
1: 0.099 2: 0.019
Output for 5.4.10
1: 0.083 2: 0.015
Output for 5.4.8
1: 0.063 2: 0.015
Output for 5.4.7
1: 0.082 2: 0.017
Output for 5.4.5
1: 0.083 2: 0.017
Output for 5.4.4
1: 0.097 2: 0.020
Output for 5.4.3
1: 0.056 2: 0.014
Output for 5.4.2
1: 0.075 2: 0.016
Output for 5.4.0
1: 0.060 2: 0.014
Output for 5.3.28
1: 0.070 2: 0.016
Output for 5.3.27
1: 0.053 2: 0.014
Output for 5.2.10, 5.3.26
1: 0.058 2: 0.014
Output for 5.3.25
1: 0.064 2: 0.015
Output for 5.3.24
1: 0.057 2: 0.014
Output for 5.3.23
1: 0.072 2: 0.017
Output for 5.3.22
1: 0.062 2: 0.014
Output for 5.3.15, 5.3.21
1: 0.054 2: 0.014
Output for 5.3.20
1: 0.052 2: 0.013
Output for 5.3.19
1: 0.055 2: 0.013
Output for 5.3.18
1: 0.056 2: 0.015
Output for 5.3.17
1: 0.071 2: 0.018
Output for 5.3.16
1: 0.070 2: 0.017
Output for 5.3.14
1: 0.072 2: 0.016
Output for 5.3.13
1: 0.065 2: 0.015
Output for 5.3.4, 5.3.12
1: 0.073 2: 0.016
Output for 5.3.10
1: 0.058 2: 0.015
Output for 5.3.9
1: 0.064 2: 0.014
Output for 5.3.7
1: 0.061 2: 0.014
Output for 5.3.6
1: 0.066 2: 0.014
Output for 5.3.5
1: 0.078 2: 0.015
Output for 5.3.2 - 5.3.3
1: 0.062 2: 0.013
Output for 5.3.1
1: 0.054 2: 0.013
Output for 5.3.0
1: 0.067 2: 0.015
Output for 5.2.17
1: 0.081 2: 0.016
Output for 5.2.13, 5.2.16
1: 0.058 2: 0.013
Output for 5.2.14
1: 0.087 2: 0.017
Output for 5.1.6, 5.2.12
1: 0.089 2: 0.017
Output for 4.3.10, 4.4.5, 5.1.1, 5.2.8
1: 0.064 2: 0.013
Output for 5.2.7
1: 0.078 2: 0.016
Output for 5.2.6
1: 0.072 2: 0.012
Output for 5.2.4
1: 0.088 2: 0.015
Output for 5.2.2
1: 0.071 2: 0.012
Output for 5.2.0
1: 0.070 2: 0.013
Output for 5.1.4
1: 0.095 2: 0.013
Output for 5.1.2
1: 0.077 2: 0.012
Output for 5.1.0
1: 0.078 2: 0.013
Output for 5.0.5
1: 0.071 2: 0.013
Output for 5.0.4
1: 0.073 2: 0.012
Output for 5.0.3
1: 0.082 2: 0.012
Output for 5.0.2
1: 0.093 2: 0.013
Output for 5.0.1
1: 0.106 2: 0.016
Output for 5.0.0
1: 0.097 2: 0.014
Output for 4.4.9
1: 0.103 2: 0.018
Output for 4.4.8
1: 0.092 2: 0.013
Output for 4.4.7
1: 0.094 2: 0.018
Output for 4.4.6
1: 0.086 2: 0.016
Output for 4.4.4
1: 0.113 2: 0.016
Output for 4.3.4, 4.4.3
1: 0.091 2: 0.015
Output for 4.4.2
1: 0.055 2: 0.012
Output for 4.4.0
1: 0.076 2: 0.013
Output for 4.3.9
1: 0.063 2: 0.013
Output for 4.3.8
1: 0.083 2: 0.013
Output for 4.3.7
1: 0.093 2: 0.014
Output for 4.3.6
1: 0.065 2: 0.012
Output for 4.3.5
1: 0.069 2: 0.012
Output for 4.3.3
1: 0.070 2: 0.012
Output for 4.3.2
1: 0.082 2: 0.013
Output for 4.3.1
1: 0.058 2: 0.011
Output for 4.3.0
1: 0.101 2: 0.016