prev()
和 next()
没有返回结果,但 current()
、end()
和 reset()
的作用如下所示:
http://flamencopeko.net/songs_scans_skip_2.php
http://flamencopeko.net/songs_scans_skip_2.txt
<?php
echo current($arrFiles);
?>
<br />prev:
<?php
echo prev($arrFiles);
?>
<br />next:
<?php
echo next($arrFiles);
?>
<br />end:
<?php
echo end($arrFiles);
?>
<br />reset:
<?php
echo reset($arrFiles);
?>
最终目标是让跳过按钮更改大扫描。有人说必须用JS来完成。我对 PHP 和 JS 都很好,但我完全不知道如何编写所需的函数。
<小时/>这使得数组:
<?php
$arrFiles = array_diff(scandir("scans", 0), array(".", ".."));
$arrFiles = array_values($arrFiles);
$intCountFiles = count($arrFiles);
?>
最佳答案
在调用current
后调用prev
,数组中的内部指针将超出范围。除非您调用 reset
或 end
,否则它不会返回。
因此,在调用current
之后,指针指向index 0
,然后调用prev
。指针超出范围,并返回 false
。
然后你调用了next
,但是指针超出了范围,它无法移动到next,所以next
也返回false
。
next
的作用类似于 prev
,一旦指针超出范围,它将不会再回来,除非你调用 reset
或 结束
;
查看zend源代码,它解释说:
ZEND_API int zend_hash_move_backwards_ex(HashTable *ht, HashPosition *pos)
{
HashPosition *current = pos ? pos : &ht->pInternalPointer;
IS_CONSISTENT(ht);
if (*current) {
*current = (*current)->pListLast;
return SUCCESS;
} else
return FAILURE;
}
关于php - prev() 和 next() 不返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17782621/