RecursiveParentChildIterator —— 就像 RecursiveDirectoryIterator
有大量使用 RecursiveIterator 来展平树结构的示例。但是使用它来分解树结构怎么样? 有没有一种优雅的方法来使用这个,或者其他一些 SPL 库来递归地…
PHP SPL 库的源代码在哪里?
我可以在 http://www.php.net/~helly/php/ext/spl/... 找到定义文件,但我想扩展 DirectoryIterator 和 SplFileInfo 用于处理存储在数据库而非真实文…
将自定义 FileInfo 类设置为迭代器的正确方法
我试图通过 setInfoClass方法: 使用此方法设置一个自定义类,该类将在调用 getFileInfo 和 getPathInfo 时使用。传递给此方法的类名必须派生自 SplFi…
扩展 PHP ArrayObject 无法正常工作
我正在尝试扩展 SPL ArrayObject,但遇到了一些障碍。使用未修改的 ArrayObject,此代码可以工作: $a = new ArrayObject(); $a[1][2] = 'abc'; print…
哪个 PHP 接口允许对象?属性可以通过数组表示法访问吗?
哪个 PHP SPL 接口允许对象执行此操作: $object->month = 'january'; echo $object['month']; // january $record['day'] = 'saturday'; echo $recor…
(语法树)使用当前自上而下的路径自下而上地递归迭代树
我有一个需要迭代的 抽象语法树 。 AST 由 lemon 到 PHP 的端口生成。 现在“通常”,我会使用全新且闪亮的(PHP 5.3.1)SPL 类来完成它,它看起来像…
PHP 中的 DirectoryIterator+FilterIterator 行为不一致?
我编写了一个使用来自标准 PHP 库 (SPL) 的 FilterIterator 类的脚本,并且在 PHP 5.x 版本中我得到了不同的行为:( 这里是 Accept() 函数: public fu…
如何使用 RegexIterator::REPLACE 模式?
我的代码出了什么问题: $i = new RegexIterator( new ArrayIterator(array( 'test1'=>'test888', 'test2'=>'what?', 'test3'=>'test999')), '/^test(…
如何使用 PHP 迭代器仅处理选定的文件夹?
我正在尝试使用 PHP 递归目录迭代器来查找 php 和 html 文件,以便按日期列出这些文件。使用的代码如下: $filelist = array(); $iterator = new Recu…
如何在 php 中创建具有重复键而不是默认哈希的数据结构?
我想创建包装类,它将启用键重复,而默认哈希不允许。类应该使用php5中引入的成员重载机制,因此它会模仿标准哈希的所有行为。例如,我想要像 $var =>…
在 PHP 中使用 array_search 使对象可搜索
我想在 PHP 中创建一个类,以便可以使用 PHP 本机方法 array_search 进行搜索。目前,我的类实现了 IteratorAggregate 和 Countable,这允许我对其执…
SPLFileObject next() 行为
在 PHP 中,SPLFileObject 允许将文件视为迭代器。 然而有一种行为我不理解。当您在对象上调用 next() 时,它会增加 key() 的值,但不会前进文件中的…
SplObjectStorage 不适用于 String,该怎么办?
有人建议使用 SplObjectStorage 来跟踪一组独特的事物。很好,但它不适用于字符串。错误提示“ SplObjectStorage::attach() 期望参数 1 为对象,第 59…