1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function autoload($className) { $className = ltrim($className, ''); $fileName = ''; $namespace = ''; if ($lastNsPos = strripos($className, '')) { $namespace = substr($className, 0, $lastNsPos); $className = substr($className, $lastNsPos + 1); $fileName = str_replace('', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR; } $fileName .= str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php'; require $fileName; } |
必須の同意
修飾された名前空間クラスは、
完全修飾された名前空間とクラスは、
各名前空間にはトップレベルの名前空間 (「ベンダー名」) が必要です。
各名前空間にはトップレベルの名前空間 (「ベンダー名」) が必要です。
各名前空間は任意の数のサブ名前空間を持つことができます
各名前空間は、必要なだけサブ名前空間を持つことができます。
ファイル システムからロードする場合、各名前空間区切り文字はパス区切り文字
に変換されます。各名前空間区切り文字は、ファイル システムからロードするときに DIRECTORY_SEPARATOR に変換されます。
クラス名の各アンダースコア文字 (_) はパス区切り文字に変換され、名前空間のアンダースコア文字 (_) には特定の意味はありません
CLASS NAME 内の各 _ 文字は DIRECTORY_SEPARATOR に変換されます。 _ 文字は名前空間では特別な意味を持ちません。
修飾された名前空間 - クラスに対応してロードされるファイルは .php
で終わる必要がありますファイル システムからロードする場合、完全修飾された名前空間とクラスには .php という接尾辞が付けられます。
ベンダー名、名前空間、クラス名の文字は、大文字と小文字を任意に組み合わせて使用できます
ベンダー名、名前空間、クラス名のアルファベットは、小文字と大文字を任意に組み合わせて使用できます。