PHP 獲取不帶名稱空間的類名

Wi1dcard發表於2019-06-20

方法很多,列出幾個,以供參考。

  • Laravel 原始碼裡扒出來的 class_basename 輔助函式

    basename(str_replace('\\', '/', $class));
  • substr 實現

    substr(strrchr($class, "\\"), 1);
    // or
    substr($class, strrpos($class, '\\') + 1);
  • explode 實現

    array_pop(explode('\\', $class));
  • ReflectionClass 實現

    (new \ReflectionClass($class))->getShortName();

其中,ReflectionClass 是最快最保險的方案,但此類必須實際存在,不存在則會丟擲 ReflectionException: Class \Foo\Bar does not exist

我感謝自己平凡,敢愛敢恨沒負擔。
我感謝自己不凡,可愛可恨都包攬。

相關文章