3v4l.org

run code in 300+ PHP versions simultaneously
<?php function guessObjectMethod($object, string $fieldName, string $prefix): ?string { if (\is_callable([$object, $method = $prefix.\str_replace(' ', '', \ucwords(\str_replace('_', ' ', $fieldName)))])) { return $method; } return null; } class Data { public function isValid() : bool { return true; } } $data = new Data(); var_dump(guessObjectMethod($data, 'valid', 'get')); var_dump(guessObjectMethod($data, 'isValid', 'get')); var_dump(guessObjectMethod($data, 'valid', 'is')); var_dump(guessObjectMethod($data, 'isValid', 'is')); // if my property is called `isValid` it won't work!
Output for 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.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
NULL NULL string(7) "isValid" NULL

preferences:
141.92 ms | 407 KiB | 5 Q