gpt4 book ai didi

php - 用对象调用重置?

转载 作者:可可西里 更新时间:2023-11-01 13:23:44 25 4
gpt4 key购买 nike

我很惊讶地看到 reset函数作用于对象。

<?php

class C {
private $a = 'a';
protected $b = 'b';
public $c = 'c';
}

$c = new C;
echo reset($c); // a

看起来如果 reset 接收到一个对象,它首先将它转换为一个数组?文档中的任何地方都没有提到这一点。这是实现细节吗?

最佳答案

该对象未转换为数组。 reset() 函数的原生特性是接受一个对象并使用它的属性表(尽管这个功能并没有在任何地方真正记录)

但是如果你查看the implementation reset() 在 PHP 解释器中,您看到它将函数参数定义为 Z_PARAM_ARRAY_OR_OBJECT_HT_EX,根据内部文档,这意味着(强调我的):

Z_PARAM_ARRAY_OR_OBJECT_HT

Specify a parameter that should parsed as either an array or an object into a HashTable. If the argument is an object, then the object's property table will be used.....

phpinternals

其他使用此类参数的函数包括 current()next(),它们也可以接受对象作为输入。

关于php - 用对象调用重置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54846594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com