Все вопросы: [spl]

18 вопросов

14
голосов
1ответов
3460 просмотров

PHP array_key_exists() and SPL ArrayAccess interface: not compatible?

I wrote a simple collection class so that I can store my arrays in objects: class App_Collection implements ArrayAccess, IteratorAggregate, Countable { public $data = array(); public function count() { return count($this->data); } public function offsetExists($of...

3
голосов
2ответов
1364 просмотров

SPLFileObject next() behavior

In PHP SPLFileObject allows treating files as iterators. Yet there is a behavior that I don't understand. When you call next() on the object it increments the value of key() but does not advance the line in the file unless you call current() with each iteration. The SPL docs state that key() ret...

7
голосов
5ответов
3047 просмотров

SplObjectStorage doesn't work with String, what to do?

Someone has suggested to e to use SplObjectStorage to keep track of a set of unique things. Great, except it doesn't work with strings. An error says " SplObjectStorage::attach() expects parameter 1 to be object, string given in fback.php on line 59" Any ideas?

7
голосов
3ответов
4795 просмотров

iterator_to_array

DatePeriod is a PHP class for handling recurring dates. It has a very limited number of methods. So when I want to do basic array functions with the recurring dates, I have to copy it to an array with iterator_to_array. Strangely, copying it seems to clobber it. Any ideas why? $p=new DatePerio...

8
голосов
2ответов
7650 просмотров

Sorting files with DirectoryIterator

I'm making a directory listing PHP5 script for lighttpd. In a given directory, I'd like to be able to list direct sub-directories and files (with informations). After a quick search, DirectoryIterator seems to be my friend: foreach (new DirectoryIterator('.') as $file) { echo $file->getF...

5
голосов
3ответов
4115 просмотров

How does the PHP IteratorIterator class work?

Try as I might I cannot get my head around what the IteratorIterator class actually does. I understand that classes can implement Traversable so the engine knows it can loop using foreach and I realise that IteratorIterator is supposed to convert anything that is Traversable into an Iterator but ...

1
голосов
2ответов
191 просмотров

__autoload mix up?

I have a server with many customers on, when I develop I include my init.php in which I have an __autoloader() function that includes the file with dir_name(__FILE__)."/classes/".$className for instance. But yesterday I saw that the server could not find the specific class, I restartat apache an...

16
голосов
7ответов
5296 просмотров

How do I alter array keys and values while using a RecursiveArrayIterator?

I suspect I'm doing something stupid here, but I'm confused by what seems like a simple problem with SPL: How do I modified the contents of an array (the values in this example), using a RecursiveArrayIterator / RecursiveIteratorIterator? Using the follow test code, I can alter the value within...

5
голосов
2ответов
10680 просмотров

после использования $ files = new DirectoryIterator () в PHP, как вы сортируете элементы?

Мы можем получить файлы в каталоге в PHP $files = new DirectoryIterator() Есть ли простой способ отсортировать элементы в определенном порядке для их отображения? спасибо.

0
голосов
2ответов
2280 просмотров

как узнать, какие языки загружены в EnterpriseDB?

Как узнать, какие языки были загружены в EnterpriseDB (PL / pgsql, SPL, Java)? EnterpriseDB построен на основе PostgreSQL, если кто-нибудь знает способ найти загруженные языки в PostgreSQL. Он должен работать так же.

2
голосов
2ответов
1969 просмотров

PHP SPL для управления рекурсивным меню

У меня есть таблица в базе данных, в которой есть данные категории: идентификатор заголовок родитель 1 категория 1 0 2 категория 2 2 3 категория 3 3 4 категория 4 0 Каждый родительский элемент может иметь идентификатор родительской строки. Например, категория 3 является дочерним элемент...

7
голосов
10ответов
666 просмотров

Как заставить программистов искать существующие функции перед написанием собственных?

Почему так много людей до сих пор пишут дрянные версии вещей в стандартных библиотеках? Не для того, чтобы преследовать разработчиков PHP, но, ребята, прочитайте PHP SPL

4
голосов
2ответов
479 просмотров

Какую реализацию Iterator мне следует использовать в PHP и почему?

Я пытаюсь провести рефакторинг большого старого проекта и заметил одну вещь - ряд различных реализаций Iterator: while($iterator->moveNext()) { $item = $iterator->current(); // do something with $item; } for($iterator = getIterator(), $iterator->HasNext()) { $item = $...

2
голосов
2ответов
1402 просмотров

Итерация по массиву элементов с помощью IteratorAggregate

У меня есть класс, и я хочу иметь возможность перебирать определенный член массива. Я быстро поискал и нашел IteratorAggregate: class foo implements IteratorAggregate { protected $_array = array('foo'=>'bar', 'baz'=>'quux'); public function getIterator() { return ne...

1
голосов
3ответов
588 просмотров

Объекты PHP как поддельные массивы

У меня есть объект, реализующий ArrayAccess , Итератор и Подсчетный . Это дает почти идеальную маскировку массива. Я могу получить к нему доступ с помощью смещений ($object[foo]), я могу перекинуть его в foreach -loop и многое другое. . Но я не могу передать его встроенным функциям итер...

2
голосов
5ответов
567 просмотров

Удалите повторяющиеся жестко закодированные циклы и условия в PHP

Я видел этот вопрос о C #. Я хотел бы получить ответ по PHP. У меня есть старый код с 4 страницами циклов и условий foreach, что затрудняет чтение и выполнение. Как мне сделать это больше ОО? Я думал об использовании SPL-функций, но еще не совсем понимаю, что это значит.

6
голосов
3ответов
596 просмотров

SPL PHP: покрывают ли его интерфейсы, включающие массивы, все свойства массива?

Можно ли написать класс, который практически неотличим от реального массива PHP, путем реализации всех необходимых интерфейсов SPL? Не хватает ли чего-нибудь критического? Я хотел бы создать более продвинутый объект Array, но я хочу убедиться, что не сломаю существующее приложение, которое ис...

3
голосов
4ответов
4162 просмотров

Спать изнутри процедуры Informix SPL

Как лучше всего выполнять семантический эквивалент традиционного системного вызова sleep () из подпрограммы Informix SPL? Другими словами, просто «сделайте паузу» на N секунд (или миллисекунд или что-то еще, но секунды - это нормально). Я ищу решение, которое не связано с компоновкой нового (в...