3v4l.org

run code in 300+ PHP versions simultaneously
<?php function validateStringByPrefix1(string $string, $prefix) { $valid = false; if (is_string($prefix)) { if (! empty($prefix) && strpos($string, $prefix) === 0) { $valid = true; } } elseif (is_array($prefix)) { foreach ($prefix as $partPrefix) { if (! empty($partPrefix) && strpos($string, $partPrefix) === 0) { $valid = true; break; } } } return $valid; } function validateStringByPrefix2(string $string, $prefix) { $valid = false; if (is_string($prefix)) { if (strpos($string, $prefix) === 0) { $valid = true; } } elseif (is_array($prefix)) { foreach ($prefix as $partPrefix) { if (! empty($partPrefix) && strpos($string, $partPrefix) === 0) { $valid = true; break; } } } return $valid; } $t = microtime(true); var_dump(validateStringByPrefix2("foo", "bar")); printf("2 %.6fs\n", microtime(true) - $t); $t = microtime(true); var_dump(validateStringByPrefix1("foo", "bar")); printf("1 %.6fs\n", microtime(true) - $t);
Output for 7.4.0
bool(false) 2 0.000037s bool(false) 1 0.000005s
Output for 7.3.12
bool(false) 2 0.000032s bool(false) 1 0.000006s
Output for 7.3.11
bool(false) 2 0.000031s bool(false) 1 0.000005s
Output for 7.3.10
bool(false) 2 0.000029s bool(false) 1 0.000003s
Output for 7.3.9
bool(false) 2 0.000035s bool(false) 1 0.000004s
Output for 7.1.32, 7.3.8
bool(false) 2 0.000032s bool(false) 1 0.000004s
Output for 7.3.7
bool(false) 2 0.000045s bool(false) 1 0.000006s
Output for 7.3.6
bool(false) 2 0.000025s bool(false) 1 0.000003s
Output for 7.3.5
bool(false) 2 0.000040s bool(false) 1 0.000013s
Output for 7.2.21, 7.3.4
bool(false) 2 0.000041s bool(false) 1 0.000005s
Output for 7.3.3
bool(false) 2 0.000028s bool(false) 1 0.000003s
Output for 7.3.2
bool(false) 2 0.000037s bool(false) 1 0.000004s
Output for 7.1.28, 7.3.1
bool(false) 2 0.000034s bool(false) 1 0.000005s
Output for 7.3.0
bool(false) 2 0.000025s bool(false) 1 0.000004s
Output for 7.2.25
bool(false) 2 0.000039s bool(false) 1 0.000004s
Output for 7.2.24
bool(false) 2 0.000046s bool(false) 1 0.000012s
Output for 7.2.23
bool(false) 2 0.000036s bool(false) 1 0.000009s
Output for 7.2.22
bool(false) 2 0.000030s bool(false) 1 0.000012s
Output for 7.2.20
bool(false) 2 0.000037s bool(false) 1 0.000010s
Output for 7.2.19
bool(false) 2 0.000043s bool(false) 1 0.000051s
Output for 7.2.18
bool(false) 2 0.000031s bool(false) 1 0.000014s
Output for 7.2.17
bool(false) 2 0.000066s bool(false) 1 0.000008s
Output for 7.2.0
bool(false) 2 0.000030s bool(false) 1 0.000007s
Output for 7.1.33
bool(false) 2 0.000029s bool(false) 1 0.000004s
Output for 7.1.31
bool(false) 2 0.000040s bool(false) 1 0.000006s
Output for 7.1.30
bool(false) 2 0.000027s bool(false) 1 0.000005s
Output for 7.1.29
bool(false) 2 0.000028s bool(false) 1 0.000004s
Output for 7.1.27
bool(false) 2 0.000032s bool(false) 1 0.000003s
Output for 7.1.26
bool(false) 2 0.000027s bool(false) 1 0.000004s
Output for 7.1.7
bool(false) 2 0.000016s bool(false) 1 0.000001s
Output for 7.1.6
bool(false) 2 0.000025s bool(false) 1 0.000005s
Output for 7.1.5
bool(false) 2 0.000038s bool(false) 1 0.000005s
Output for 7.1.0
bool(false) 2 0.000019s bool(false) 1 0.000004s
Output for 7.0.20
bool(false) 2 0.015797s bool(false) 1 0.000013s
Output for 7.0.11
bool(false) 2 0.003850s bool(false) 1 0.000023s
Output for 7.0.10
bool(false) 2 0.000101s bool(false) 1 0.000019s
Output for 7.0.9
bool(false) 2 0.000068s bool(false) 1 0.000012s
Output for 7.0.8
bool(false) 2 0.000101s bool(false) 1 0.000017s
Output for 7.0.7
bool(false) 2 0.000036s bool(false) 1 0.000007s
Output for 7.0.6
bool(false) 2 0.000080s bool(false) 1 0.000014s
Output for 7.0.5
bool(false) 2 0.000061s bool(false) 1 0.000009s
Output for 7.0.4
bool(false) 2 0.000158s bool(false) 1 0.000047s
Output for 7.0.3
bool(false) 2 0.000031s bool(false) 1 0.000006s
Output for 7.0.2
bool(false) 2 0.000119s bool(false) 1 0.000021s
Output for 7.0.1
bool(false) 2 0.000036s bool(false) 1 0.000177s
Output for 7.0.0
bool(false) 2 0.000032s bool(false) 1 0.000005s
Output for 5.6.0 - 5.6.25
Catchable fatal error: Argument 1 passed to validateStringByPrefix2() must be an instance of string, string given, called in /in/ThVnN on line 43 and defined in /in/ThVnN on line 21
Process exited with code 255.

preferences:
78.56 ms | 471 KiB | 5 Q