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