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


  1. basename()関数を使用する方法: basename()関数は、パスの中から最後の要素(ディレクトリまたはファイル)を取得します。名前空間を含まないクラス名を取得する場合、クラスのファイルパスをbasename()関数に渡すことで、クラス名を取得することができます。

例:

$className = basename('/path/to/MyClass.php', '.php');
echo $className; // 出力: MyClass
  1. ReflectionClassを使用する方法: ReflectionClassクラスは、クラスのリフレクション情報を提供するためのPHPのビルトインクラスです。ReflectionClassのgetShortName()メソッドを使用すると、名前空間を含まないクラス名を取得することができます。

例:

$class = new ReflectionClass('App\\Namespace\\MyClass');
$className = $class->getShortName();
echo $className; // 出力: MyClass
  1. 正規表現を使用する方法: 正規表現を使用して、文字列から名前空間を含まないクラス名を抽出することもできます。

例:

$className = preg_replace('/^.+\\\\/', '', 'App\\Namespace\\MyClass');
echo $className; // 出力: MyClass

これらは、文字列から名前空間を含まないクラス名を取得するための一般的な方法です。あなたの特定の状況や要件に合わせて、最適な方法を選択してください。