- Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.29, 8.2.0 - 8.2.23, 8.3.0 - 8.3.11
- string(0) "" string(3) "foo" string(3) "foo" string(7) "foo.bar" string(10) "foo.bar[0]"
<?php
function findBase(string $t): string|null
{
$matches = [];
preg_match('/(?P<name>\.([^\.])*)$/', $t, $matches);
if (!isset($matches['name'])) {
return $t;
};
return substr($t, 0, -1 * strlen($matches['name']));
}
var_dump(findBase(''));
var_dump(findBase('foo'));
var_dump(findBase('foo.bar'));
var_dump(findBase('foo.bar.baz'));
var_dump(findBase('foo.bar[0].baz'));