问题标签 [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 投票
4 回答
4767 浏览

informix - 在 Informix SPL 过程中休眠

从 Informix SPL 例程中执行与传统 sleep() 系统调用的语义等效的最佳方法是什么?换句话说,只需“暂停” N 秒(或毫秒或其他什么,但几秒就可以了)。我正在寻找一种涉及将一些新的(可能由我编写的)C 代码或其他库链接到 Informix 服务器的解决方案。这必须是我可以完全从 SPL 做的事情。IDS 10 或 11 的解决方案会很好。

@RET - “显而易见”的答案对我来说并不明显!我不知道 SYSTEM 命令。谢谢!(是的,我就是你认为的那个人。)


是的,它仅用于调试目的。不幸的是,SPL 中的 CURRENT 将始终返回相同的值,在调用的入口处设置:

“从 SPL 函数内部对 EXECUTE FUNCTION(或 EXECUTE PROCEDURE)语句调用的任何对 CURRENT 的调用都会在 SPL 函数启动时返回系统时钟的值。”

IBM Informix SQL 指南

将 CURRENT 包装在它自己的子程序中没有帮助。在第一次调用包装器时,您确实会得到不同的答案(前提是您使用的是 YEAR TO FRACTION(5) 或其他具有足够高的分辨率来显示差异的类型),但随后您会在每一个上得到相同的值随后的调用,确保任何类型的循环都不会终止。

0 投票
3 回答
606 浏览

php - PHP 的 SPL:其涉及数组的接口是否涵盖所有数组属性?

是否可以通过实现所有必要的 SPL 接口来编写一个与实际 PHP 数组几乎无法区分的类?他们是否遗漏了任何重要的东西?

我想构建一个更高级的 Array 对象,但我想确保如果我用自定义 Array 类替换它们,我不会破坏到处使用数组的现有应用程序。

0 投票
5 回答
579 浏览

php - 删除 PHP 中重复的、硬编码的循环和条件

我看到这个关于 C# 的问题我想要一个 PHP 的答案。我有一些旧代码有 4 页的 foreach 循环和条件,这使得它难以阅读和遵循。我怎样才能使这个更面向对象?我正在考虑使用 SPL 函数,但还不完全了解其中涉及的内容。

0 投票
3 回答
598 浏览

php - PHP 对象作为伪数组

我有一个实现ArrayAccessIteratorCountable的对象。这会产生近乎完美的阵列掩蔽。$object[foo]我可以使用偏移量foreach

但是我不能做的是把它交给本机数组迭代器函数(next(), reset(), current(), key()),即使我已经从 Iterator 实现了所需的方法。PHP 似乎顽固地尝试遍历其成员变量,并且完全无视迭代器方法。

是否有一个接口可以将对象连接到剩余的数组遍历函数,或者我是否坚持我所拥有的?

更新: IteratorAggregate 似乎也不是答案。虽然它在foreach-loops 中使用,但基本的数组迭代器函数不会调用这些方法。

0 投票
2 回答
1409 浏览

php - 使用 IteratorAggregate 迭代成员数组

我有一个类,我希望能够迭代某个数组成员。我快速搜索了一下,发现IteratorAggregate

效果很好,但是不是ArrayIterator每次foreach都使用它创建一个新实例吗?

所以我想我应该将迭代器实例存储在一个成员中:

问题是迭代器$this->_array在第一次调用 时使用 的副本getIterator(),因此对成员的更改不会反映在后续foreach构造中。

我在想我应该子类化ArrayIterator,添加一个setArray($array)方法并在返回之前调用它getIterator(),但我不知道它在内部使用的数组的成员名称以及它是否可以被子类覆盖。

问题是:这是过早和/或不必要的优化吗?如果没有,实现这一目标的最佳方法是什么?

0 投票
2 回答
486 浏览

php - 我应该在 PHP 中使用哪个 Iterator 实现,为什么?

我正在尝试重构一个大型的旧项目,我注意到的一件事是一系列不同的迭代器实现:

甚至是StandardPHPLibrary (SPL)迭代器,它允许

拥有这么多不同的迭代器(使用不同的方法循环集合)似乎是一种强烈的代码气味,我倾向于将所有内容重构为 SPL。Iterator 的这些实现是否有令人信服的优势,还是纯粹是个人喜好问题?

0 投票
10 回答
671 浏览

php - 我们如何让编码人员在编写自己的函数之前查找现有函数?

为什么这么多人仍在标准库中编写糟糕的版本?不是追随 PHP 开发人员,而是去阅读PHP SPL

0 投票
2 回答
1979 浏览

php - PHP SPL 操作递归菜单

我在数据库中有一个包含类别数据的表:

每个父级都可能具有父级行 ID。

例如,类别 3 是类别 2 的子类别,类别 2 是类别 1 的子类别。

1 - 有没有更好的方法来操纵这种技术?2 - 我的实现是在一个 SQL 查询中获取所有行,然后使用递归函数来构建一个多维数组,然后我使用多级 foreach 遍历它来构建一个菜单或其他任何东西。我需要使用 PHP SPL 的更好方法。

我想创建一个完整的菜单或一个项目路径,如:

并创建一个网格,其中包含每行中的类别级别。

0 投票
2 回答
2308 浏览

postgresql - 如何查找加载到 EnterpriseDB 中的语言?

如何找到 EnterpriseDB(PL/pgsql、SPL、Java)中加载了哪些语言?如果有人知道在 PostgreSQL 上找到加载的语言的方法,EnterpriseDB 是建立在 PostgreSQL 之上的。它应该工作相同。

0 投票
2 回答
11177 浏览

php - 在 PHP 中使用 $files = new DirectoryIterator() 后,如何对项目进行排序?

我们可以通过以下方式获取 PHP 目录中的文件

之后有没有一种简单的方法可以按特定顺序对项目进行排序以显示它们?谢谢。