<?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!
preferences:
25.18 ms | 407 KiB | 5 Q