问题标签 [arrayaccess]

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 投票
2 回答
520 浏览

php - 当我们在php中实现ArrayAccess接口时,empty()方法做了什么?

我是 php 新手并从php.net学习它。以下参考链接上的注释说:

使用 empty() 时,仅当ArrayAccess::offsetExists()返回TRUE时,才会调用 ArrayAccess::offsetGet() 并检查是否为空。

这是什么意思?

参考链接(http://php.net/manual/en/arrayaccess.offsetexists.php)。

0 投票
2 回答
322 浏览

php - 如果另一个值不可用,offset 参数将设置为 NULL,这在 php 中是什么意思?

我正在为我的最后一年项目学习ArrayAccess接口。我不知道ArrayAccess::offsetSet()的offset参数何时设置为NULL。如php.net中所述。

注意:如果另一个值不可用,偏移参数将设置为 NULL,如下例所示。

上面的示例将输出:

那么这里的NULL是什么概念呢?谁能告诉?

参考链接http://php.net/manual/en/arrayaccess.offsetset.php

谢谢 !

0 投票
1 回答
412 浏览

php - 为什么我们使用 ArrayAccess::offsetUnset(),而不是我们可以在 php 中使用 unset()?

为什么我们使用ArrayAccess::offsetUnset()而不是我希望unset()足以使用。但是 php.net 声明:

注意:类型转换为(未设置)时不会调用此方法

谁能告诉我们如何使用它,它是否会自动从实现ArrayAccess接口的类中取消设置被调用的偏移元素?

参考链接http://php.net/manual/en/arrayaccess.offsetunset.php

谢谢 !!!

0 投票
1 回答
362 浏览

php - PHP:计算没有 Countable 的 ArrayAccess 对象

所以我正在使用一些我没有完整源代码的外部 PHP 代码。我正在使用反射来制定可调用的方法等。

他们有这样的课程:

所以逻辑上我可以foreach(SpecialArray),那很好。

但是在代码中,我可以通过某种方式count(SpecialArray)获得正确的计数,例如,如果 SpecialArray 中有 5 个元素,count(SpecialArray)则返回 5!

但是,该类中没有count方法,该类也没有实现Countable CallingSpecialArray->count()也失败了Call to undefined method

有谁知道他们如何做这种巫毒魔法?

满的\ReflectionClass::export()

0 投票
2 回答
404 浏览

php - PHP 5.6:ArrayAccess:函数 isset 调用 offsetGet 并导致未定义索引通知

我编写了实现 ArrayAccess 接口的简单 PHP 类:

它在 PHP 7 中正常工作,但在 PHP 5.6 和 HHVM 中出现问题。

如果我isset()在未定义的索引上调用函数,PHP 将调用offsetGet()而不是offsetExists()会引起Undefined index注意。

在 PHP 7 中,它offsetGet()仅在offsetExists()返回时调用true,因此没有错误。

我认为这与PHP bug 62059有关。

该代码在 3V4L 可用,因此您可以看到问题所在。如果索引未定义,我添加了更多调试调用并抛出异常,因为 3V4L 中未显示通知: https ://3v4l.org/7C2Fs

不应该有任何通知,否则 PHPUnit 测试将失败。我该如何解决这个错误?

0 投票
1 回答
138 浏览

arrays - 是否有从二维数组中提取对角线的下标语法?

我大多可以按照语法在文档页面上“向下钻取/切片”到具有多个维度(和展平)的数组中。一个非常酷的功能。例如给出:

我可以使用以下方法选择上述第 2 列:

是否可以以类似的紧凑语法提取对角线 (1,5,9)?

0 投票
3 回答
256 浏览

php - 为没有容器数组的 ArrayAccess 实现 Iterator 接口

这是我为 ArrayAccess 实现https://www.php.net/manual/en/class.iterator.php的尝试。许多示例使用容器数组作为私有成员变量;但如果可能的话,我不想使用容器数组。我不想要容器数组的主要原因是因为我想$DomainData->domainId在拥有智能感知等的同时访问这样的属性(数组键)。

演示:https ://ideone.com/KLPwwY

调用它:

实际的:

想要的:

0 投票
2 回答
110 浏览

c# - 多线程访问和编辑同一个双精度数组

我需要遍历数组中的每个双精度来执行“拉普拉斯平滑”,“混合值”与相邻双精度。

我会将存储的值保存在临时克隆数组中,最后更新原始值。

伪代码:

使用for它可以正常工作。“平滑”数组中的值。

Parallel.For()遇到了一些访问同步问题:线程正在发生冲突,并且某些值实际上没有正确存储。线程多次访问和编辑同一索引处的数组。

(我没有在线性数组中测试过这个,我实际上正在研究一个多维数组[x,y,z] ..)

我该如何解决这个问题?

我正在考虑为每个线程创建一个单独的数组,然后再进行求和......但我需要知道线程索引并且我在网络上的任何地方都没有找到。(即使使用完全不同的解决方案,如果存在“线程索引”,我仍然感兴趣......)。

我会接受任何解决方案。

0 投票
1 回答
215 浏览

arrays - 用于访问一维数组的 Julia For 循环

我正在尝试运行 2 for 循环来访问数组中的 2 个元素,(例如)

并且经常(并非总是)我收到此错误或类似错误:

我知道有适当的方法来运行这些循环以避免边界错误,因此我使用eachindex(x-1) == 1:x, 我将如何做到这一点2:x

我对 Julia 比较陌生,如果这不是边界错误的原因,那可能是什么?- 谢谢

编辑:我正在尝试运行的缩短版本(也是,矢量数组)

0 投票
0 回答
50 浏览

c++ - C ++为什么即使未定义也允许访问数组外部的元素?

我想知道为什么在明确提到未定义时允许访问数组边界之外的元素。