问题标签 [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.
php - 遍历多级 ArrayObject() 以打印出屏幕分层视图
我有一个输出非常复杂的 ArrayObject 结构,它可以/并且由多个关系级别组成,例如 Parent -> Child -> Children -> Child 等。
当使用 foreach、for 或 while 循环时,这样的结构非常复杂。我研究了 SPL 迭代器,我认为可以使用它。我对整个概念有点不熟悉,所以任何关于循环多个级别的建议都会很受欢迎。
谢谢
php - 在 RecursiveIteratorIterator 中实现 RecursiveArrayIterator 时访问数组对象变量
我有一个大的arrayObject,我正在使用以下内容进行循环:-
如何访问数组中的特定键?我可以通过回显 $key 和 $val 来访问它们,但我有我希望访问的特定密钥。如果我尝试调用 $key[''] 我会得到键名的第一个字母。
编辑 1
一些示例数据(也可以有许多不同的子子项):
php - 使用 SPL ArrayObject、ArrayIterator、RecursiveArrayIterator 代替常规数组有什么好处?
我已经开始从 ArrayIterators 学习 PHP SPL,我想知道使用 SPL ArrayObject、ArrayIterator、RecursiveArrayIterator 而不是常规数组有什么好处?
a) 我听说使用 SPL 迭代器的循环会减少内存使用量(但为什么?)。我真的不知道是否相信这一点,因为我不明白它如何减少内存使用量。
b)谈到 RecursiveArrayIterator,我们可以说有时它可以节省一些代码行(我们使用一个 foreach 构造而不是 2+(取决于数组维度))。
也许,我的问题对某些人来说似乎很容易,但是关于 SPL 的信息/文档太少了。
谢谢
php - PHP RecursiveIterator 遍历
我有一个表示表单的结构,我想使用 RecursiveIterator 对其进行迭代。问题是这只返回顶级问题。我究竟做错了什么?
整体形式:
问题:
迭代:
php - 通过 php 迭代器进行有效搜索
我有一个自定义迭代器(准确地说是 TokenIterator,它可以迭代,好吧,标记化的 php 代码)。项目是简单的对象(添加了一些规范化方法的“属性包”)
我必须实现搜索功能,它必须查找 1. 一个迭代器是否包含另一个或 2. 两个(或更多)迭代器重叠(带有一些参数化)。
目前我对 (1) - O(NxM) 双循环搜索使用天真的方法,并且 (2) 尚未实现。
在开始重新实现真正智能的字符串搜索算法之前,我想知道是否存在一些有效的实现?也许一些深埋在某些框架或通用库中的东西可以重用?哪种算法最适合这里?
php - 列表中的第一个和最后一个元素使用 RecursiveIteratorIterator
我正在使用RecursiveIteratorIterator
to loop over Zend_Navigation
,这基本上是嵌套<ul>
和<li>
标签的列表:
如何判断当前迭代的元素 ( $page
) 是当前层的第一个元素还是最后一个元素?
我需要为这些元素添加first
和last
类属性。
php - ArrayAccess 是如何工作的?
我一直在从 SPL 中阅读有关 PHP 常用接口的信息,例如Iterator
、Countable
和ArrayAccess
. 但是,我不完全了解它们是如何工作的。
他们的实现是否修改了 PHP 的核心功能,例如重载[]
数组运算符?
我还阅读了有关运算符扩展的信息,它提供了以与低级语言相同的方式重载其他运算符的能力。由于 Operator 扩展明确修改了 PHP 核心,我想知道是否ArrayAccess
在幕后以相同的方式进行操作?
我是一个修补匠,因此我发现在不知道引擎盖下的东西的情况下很难使用某些东西。
php - 为什么在调用父级的构造函数时会出现致命错误?
我正在扩展 SPL(标准 PHP 库)类之一,但无法调用父级的构造函数。这是我得到的错误:
致命错误:无法调用构造函数
这是SplQueue
's 文档的链接:http ://www.php.net/manual/en/class.splqueue.php
这是我的代码:
什么可以阻止我调用父母的构造函数?
php - PHP 5.x 是否有某种 HashSet 或 Set 类?
我已经习惯了我拥有的 JavaHashSets
和ArrayLists
其他Collections
. 但我现在正在做一个 PHP 项目。
我需要创建一个集合,用对象(在本例中为字符串)填充该集合,但集合只能包含每个对象一次。另外,如果存在,我想最终从该集合中删除某个对象。对于 Java 集合类,这将非常容易。但是我怎样才能在 PHP 中实现呢?
有没有array()
我遗漏的方法?我正在使用 PHP 5.3。
php - PHP 自动加载器和 Unix 区分大小写的文件系统
我有index.php
_controller/Autoloader.php
我有文件_controller/MySQL.php和 Gold_MySQL.class。在 Windows 系统上,此代码正在运行,包括 MySQL.php,但在托管此代码时不起作用((
编辑
如何使 Unix 可以查看任何文件?Zend 没有小写字母的文件。