Articles of spl

Использование PHP spl_autoload_register () с помощью Codeigniter

Как я могу использовать spl_autoload_register () с помощью Codeigniter? Мне нужно сделать это, потому что я использую Codeigniter с другой структурой, которая также использует autoload. Я увидел что-то здесь PHP spl_autoload_register но я не знаю, как настроить автозагрузку CodeIgniter . Im новое для ООП и Codeigniter. Большое спасибо! Вышеупомянутая ссылка имеет следующее: функция autoload_services ($ […]

Как получить количество строк с SplFileObject?

$file = new SplFileObject('/path/to/file.txt'); Как найти количество строк в файле с помощью SplFileObject ?

spl_object_hash для PHP <5.2 (уникальный идентификатор для экземпляров объекта)

Я пытаюсь получить уникальные идентификаторы для экземпляров объектов в PHP 5+. Функция, spl_object_hash() доступна из PHP 5.2, но мне интересно, есть ли временное решение для более старых версий PHP. В комментариях на php.net есть несколько функций, но они не работают для меня. Первый (упрощенный): function spl_object_hash($object){ if (is_object($object)){ return md5((string)$object); } return null; } не […]

SPL против массива: когда следует использовать SPL и когда мы должны использовать Array в PHP?

В java и C ++, когда мы не знаем размер – массив, который не используется как в PHP, вместо этого используется linkedList и т. Д. В PHP существует SPL, но в большинстве случаев программисты используют массив, почему (потому что люди не знают о SPL)? Когда мы должны использовать Array в PHP и whenSPL и в […]

Spl, ArrayObject, ArrayObject :: STD_PROP_LIST

Я пытаюсь понять константу STD_PROP_LIST в документации, но до сих пор я этого не понимал и не нашел объяснений 🙁 В документации есть следующий пример: $a = new ArrayObject(array(), ArrayObject::STD_PROP_LIST); $a['arr'] = 'array data'; $a->prop = 'prop data'; $b = new ArrayObject(); $b['arr'] = 'array data'; $b->prop = 'prop data'; // ArrayObject Object // ( […]

SPLFileInfo: получить имя файла без расширения

Я обращаюсь к нескольким файлам в объекте SPLFileInfo. Я вижу способ получить путь, имя файла и даже расширение файла. Есть ли способ получить имя файла без расширения? Вот код, с которым я работал, но я надеюсь получить что-то более элегантное. Есть ли решение из коробки? $file = new SplFileInfo("path/to/file.txt.zip"); echo 'basename: '.$file->getBasename(); echo PHP_EOL; echo […]

Сортировка файлов по каталогу с помощью каталога DirectoryTreeIterator

Я нашел пару вопросов ( этот и этот вопрос ), связанные с итераторами SPL, но я не уверен, насколько они полезны в моем случае, поскольку я использую довольно высокий уровень расширения RecursiveIteratorIterator ; DirectoryTreeIterator . Может ли кто-нибудь, возможно, показать мне, как изменить DirectoryTreeIterator или как отсортировать возвращаемый массив по каталогу после того, как он […]

PHP ленивое отображение массива

Есть ли способ сделать array_map, но как итератор? Например: foreach (new MapIterator($array, $function) as $value) { if ($value == $required) break; } Причиной этого является то, что $ function сложно вычислить, а $ array имеет слишком много элементов, нужно только сопоставить, пока не найду определенное значение. array_map будет вычислять все значения, прежде чем я смогу […]

Расширение ArrayObject в PHP правильно?

Проблема: Я пытаюсь расширить ArrayObject PHP, как показано ниже. К сожалению, я не могу заставить его работать правильно при настройке многомерных объектов, а вместо этого возникает ошибка, так как у меня есть строгие настройки, включенные в PHP. ( Error: Strict standards: Creating default object from empty value ) Вопрос: Как я могу изменить свой класс, […]

Ассоциативный массив против SplObjectStorage

Я работаю над кодом для управления коллекцией уникальных объектов. Первый прототип этого кода использует ассоциативный массив, в основном, так как я всегда это делал. Тем не менее, я также заинтересован в использовании функциональных возможностей, которые были добавлены в более современные версии PHP, такие как SplObjectStorage, для этого, частично в качестве учебного опыта, отчасти потому, что […]