簡體   English   中英

在PHP 5.5中獲取類的名稱空間的最有效方法是什么?

[英]What is the most efficient way of getting the namespace of a class in PHP 5.5?

PHP 5.5 使用::class語法引入了一種簡潔的類名解析方法 我想這會使很多人的生活更輕松。 當然對我有用。

但是現在我發現自己必須進一步走一步:獲取某個類的名稱空間。 這不是一項艱巨的編程任務。 它可以通過字符串操作或數組來實現:

$parts = explode('\\', \Foo\Bar\Baz::class);
array_pop($parts);
return implode('\\', $parts); // returns "Foo\Bar"

但這實在是太過分了,因為我經常使用它(作為元編程的一種手段)。 當我分析應用程序時,它實際上顯示為瓶頸。 任何人都有一個更有效的解決方案的主意嗎?

至少

$class = \Foo\Bar\Baz::class;
$namespace = substr($class, 0, strrpos($class, '\\'));

應該更有效率。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM