<?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