问题标签 [spl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
358 浏览

php - 遍历多级 ArrayObject() 以打印出屏幕分层视图

我有一个输出非常复杂的 ArrayObject 结构,它可以/并且由多个关系级别组成,例如 Parent -> Child -> Children -> Child 等。

当使用 foreach、for 或 while 循环时,这样的结构非常复杂。我研究了 SPL 迭代器,我认为可以使用它。我对整个概念有点不熟悉,所以任何关于循环多个级别的建议都会很受欢迎。

谢谢

0 投票
2 回答
1042 浏览

php - 在 RecursiveIteratorIterator 中实现 RecursiveArrayIterator 时访问数组对象变量

我有一个大的arrayObject,我正在使用以下内容进行循环:-

如何访问数组中的特定键?我可以通过回显 $key 和 $val 来访问它们,但我有我希望访问的特定密钥。如果我尝试调用 $key[''] 我会得到键名的第一个字母。

编辑 1

一些示例数据(也可以有许多不同的子子项):

0 投票
1 回答
2355 浏览

php - 使用 SPL ArrayObject、ArrayIterator、RecursiveArrayIterator 代替常规数组有什么好处?

我已经开始从 ArrayIterators 学习 PHP SPL,我想知道使用 SPL ArrayObject、ArrayIterator、RecursiveArrayIterator 而不是常规数组有什么好处?

a) 我听说使用 SPL 迭代器的循环会减少内存使用量(但为什么?)。我真的不知道是否相信这一点,因为我不明白它如何减少内存使用量。

b)谈到 RecursiveArrayIterator,我们可以说有时它可以节省一些代码行(我们使用一个 foreach 构造而不是 2+(取决于数组维度))。

也许,我的问题对某些人来说似乎很容易,但是关于 SPL 的信息/文档太少了。

谢谢

0 投票
2 回答
3985 浏览

php - PHP RecursiveIterator 遍历

我有一个表示表单的结构,我想使用 RecursiveIterator 对其进行迭代。问题是这只返回顶级问题。我究竟做错了什么?

整体形式:

问题:

迭代:

0 投票
2 回答
812 浏览

php - 通过 php 迭代器进行有效搜索

我有一个自定义迭代器(准确地说是 TokenIterator,它可以迭代,好吧,标记化的 php 代码)。项目是简单的对象(添加了一些规范化方法的“属性包”)

我必须实现搜索功能,它必须查找 1. 一个迭代器是否包含另一个或 2. 两个(或更多)迭代器重叠(带有一些参数化)。

目前我对 (1) - O(NxM) 双循环搜索使用天真的方法,并且 (2) 尚未实现。

在开始重新实现真正智能的字符串搜索算法之前,我想知道是否存在一些有效的实现?也许一些深埋在某些框架或通用库中的东西可以重用?哪种算法最适合这里?

0 投票
1 回答
341 浏览

php - 列表中的第一个和最后一个元素使用 RecursiveIteratorIterator

我正在使用RecursiveIteratorIteratorto loop over Zend_Navigation,这基本上是嵌套<ul><li>标签的列表:

如何判断当前迭代的元素 ( $page) 是当前层的第一个元素还是最后一个元素?
我需要为这些元素添加firstlast类属性。

0 投票
1 回答
532 浏览

php - ArrayAccess 是如何工作的?

我一直在从 SPL 中阅读有关 PHP 常用接口的信息,例如IteratorCountableArrayAccess. 但是,我不完全了解它们是如何工作的。

他们的实现是否修改了 PHP 的核心功能,例如重载[]数组运算符?

我还阅读了有关运算符扩展的信息,它提供了以与低级语言相同的方式重载其他运算符的能力。由于 Operator 扩展明确修改了 PHP 核心,我想知道是否ArrayAccess在幕后以相同的方式进行操作?

我是一个修补匠,因此我发现在不知道引擎盖下的东西的情况下很难使用某些东西。

0 投票
5 回答
30037 浏览

php - 为什么在调用父级的构造函数时会出现致命错误?

我正在扩展 SPL(标准 PHP 库)类之一,但无法调用父级的构造函数。这是我得到的错误:

致命错误:无法调用构造函数

这是SplQueue's 文档的链接:http ://www.php.net/manual/en/class.splqueue.php

这是我的代码:

什么可以阻止我调用父母的构造函数?

0 投票
4 回答
14568 浏览

php - PHP 5.x 是否有某种 HashSet 或 Set 类?

我已经习惯了我拥有的 JavaHashSetsArrayLists其他Collections. 但我现在正在做一个 PHP 项目。

我需要创建一个集合,用对象(在本例中为字符串)填充该集合,但集合只能包含每个对象一次。另外,如果存在,我想最终从该集合中删除某个对象。对于 Java 集合类,这将非常容易。但是我怎样才能在 PHP 中实现呢?

有没有array()我遗漏的方法?我正在使用 PHP 5.3。

0 投票
3 回答
1429 浏览

php - PHP 自动加载器和 Unix 区分大小写的文件系统

我有index.php

_controller/Autoloader.php

我有文件_controller/MySQL.php和 Gold_MySQL.class。在 Windows 系统上,此代码正在运行,包括 MySQL.php,但在托管此代码时不起作用((

编辑

如何使 Unix 可以查看任何文件?Zend 没有小写字母的文件。