PHPのドキュメントによると
PHP 名前空間は、クラス名の別名付け、インターフェース名の別名付け、および名前空間名の別名付けの 3 種類の別名付けまたはインポートをサポートしています。関数または定数のインポートはサポートされていないことに注意してください。
関数または定数のインポートがサポートされていない理由の歴史的または技術的なコンテキストを知っている人はいますか?
PHPのドキュメントによると
PHP 名前空間は、クラス名の別名付け、インターフェース名の別名付け、および名前空間名の別名付けの 3 種類の別名付けまたはインポートをサポートしています。関数または定数のインポートはサポートされていないことに注意してください。
関数または定数のインポートがサポートされていない理由の歴史的または技術的なコンテキストを知っている人はいますか?
Jochem Maas (この 5 年前の RFCの作成者) に連絡を取ったところ、彼は 1 つの理由を特定するのをためらっていましたが (当然のことながら、彼は現在名前空間システムに深く関与していないため)、彼の 3 つの要因は次のとおりでした。
クラス名の衝突は、関数名の衝突よりも実際の問題でした
PHP の関数とクラスは、エンジン コードのさまざまな領域に存在し、use
ステートメント中にどれがどれであるかを解析するには技術的なハードルがありました。
オートローダの処理方法と特定の機能のインポート/エイリアシングについて、不確実性/意見の相違がありました。(独立したシステムであるオートローダーは、クラスのみで動作します)
最終的には、PHP のプラグマティズムが勝利を収めました。それが、今日の名前空間システムがある理由です。