PHPで文字列から名前空間を除いたクラス名を取得する方法


方法1: strrposとsubstrを使用する方法

function getClassName($fullyQualifiedName) {
    $pos = strrpos($fullyQualifiedName, '\\');
    if ($pos === false) {
        return $fullyQualifiedName;
    }
    return substr($fullyQualifiedName, $pos + 1);
}
$fullyQualifiedName = 'App\\Models\\User';
$className = getClassName($fullyQualifiedName);
echo $className; // 結果: User

この方法では、strrpos関数を使用して文字列内の最後のバックスラッシュの位置を取得し、substr関数を使用してバックスラッシュの後の部分を切り出します。

方法2: クラスリフレクションを使用する方法

function getClassName($fullyQualifiedName) {
    $reflection = new ReflectionClass($fullyQualifiedName);
    return $reflection->getShortName();
}
$fullyQualifiedName = 'App\\Models\\User';
$className = getClassName($fullyQualifiedName);
echo $className; // 結果: User

この方法では、ReflectionClassクラスを使用してクラスのリフレクションを取得し、getShortNameメソッドを使用して短いクラス名を取得します。

これらの方法を使用すると、文字列から名前空間を除いたクラス名を取得することができます。コード例を参考にして、自分の要件に合わせて適切な方法を選択してください。