【问题标题】:How do I find code for PHP builtin functions?如何找到 PHP 内置函数的代码?
【发布时间】: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 代码没有尝试导航列表,为什么底层库会猜测并设置指针?

标签: php built-in


【解决方案1】:

PHP is opensource。我对此了解的不够多,不知道该去哪里看,但您可以查看this search 以缩小范围。

【讨论】:

  • 感谢您的回答。关于我们在 SplDoublyLinkedList 中调用当前函数()时为什么会得到 NULL 的任何想法。
  • 这是我的代码 https:// paste .ofcode.org / JCGBMQ7pWxmDzrU2QKFJHm 。删除中间的空格。
猜你喜欢
  • 2020-07-03
  • 2020-01-31
  • 2021-09-28
  • 1970-01-01
  • 2012-01-26
  • 1970-01-01
  • 2019-02-13
  • 1970-01-01
相关资源
最近更新 更多