【发布时间】:2020-06-11 07:38:26
【问题描述】:
我正在寻找 php 类 SplDoublyLinkedList。
我想知道为什么该列表没有current,即当您不使用rewind 时它显示为NULL。
但是我们在那里有一个有效的key。如果使用rewind 函数,则当前不为空。
有没有办法找到 php.ini 中使用的类。
你可以测试这段代码:
$spl = new \SplDoublyLinkedList;
$dataSet = array(1,2,3,4);
foreach ($dataSet as $row) {
$spl->push($row);
}
//$spl->rewind();
echo "count: " . $spl->count() . "<br />";
echo "valid: " . ($spl->valid() ? 'true' : 'false') . "<br />";
echo "current: " . var_export($spl->current(), true) . "<br />";
echo "key: " . $spl->key() ."<br />";
这是输出
count: 4
valid: false
current: NULL
key: 0
如果我使用倒带
$spl = new \SplDoublyLinkedList;
$dataSet = array(1,2,3,4);
foreach ($dataSet as $row) {
$spl->push($row);
}
$spl->rewind();
echo "count: " . $spl->count() . "<br />";
echo "valid: " . ($spl->valid() ? 'true' : 'false') . "<br />";
echo "current: " . var_export($spl->current(), true) . "<br />";
echo "key: " . $spl->key() ."<br />";
我得到这个输出
count: 4
valid: true
current: 1
key: 0
【问题讨论】:
-
有人投票支持结束这个问题。请至少给出一些理由。这个问题已经存在了吗?
-
我投票决定关闭它,因为它正在寻找场外资源
-
@cid 我为 SplDoublyLinkedList 提出的查询怎么样。问题是否已经存在。
-
我不知道它是如何实现的,但对我来说这似乎是很合乎逻辑的行为。如果 PHP 代码没有尝试导航列表,为什么底层库会猜测并设置指针?