2012-02-22 5 views
1

Я пространство имен объявляется как таковой:Использование SPLFixedArray в пространстве имен

namespace MySpace { 

    $array = new SPLFixedArray(); 

} 

Ошибка я получаю:

Фатальная ошибка: класс 'MySpace \ SplFixedArray' не найден в C: \ XAMPP \ HTDOCS \ private \ config.php on line 25

Существует ли пространство имен, определенное для всех функций SPL, или я делаю что-то неправильное здесь? царапины головы

ответ

2

Чтобы использовать классы из глобального пространства имен, префикс их с разделителем пространства имен:

$array = new \SplFixedArray; 

или псевдоним их, как и любой другой Namespaced класс:

use \SplFixedArray; 
// ... 
$array = new SplFixedArray; 
+0

Отлично! Спасибо, я думал, что это глобальное пространство имен ... почему бы им просто не сделать эти методы глобальными без определения пространства имен? Oi. – ddibiase

+0

Потому что в коде с расширением имен все должно иметь пространство имен. Это позволяет вам определить свой собственный класс с именем «SplFixedArray» и вставить его в «MySpace» без переопределения (противоречия) глобального. Вы просто получили бы доступ к нему, как 'MySpace \ SplFixedArray', а не' \ SplFixedArray'. – FtDRbwLXw6

Смежные вопросы