首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用对象调用reset?

用对象调用reset?
EN

Stack Overflow用户
提问于 2019-02-23 21:53:16
回答 1查看 404关注 0票数 7

看到重置函数在对象上工作,我感到很惊讶。

代码语言:javascript
运行
复制
<?php

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

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-07 18:25:58

对象不被转换为数组。接受一个对象并使用它的属性表是reset()函数的本机特性(尽管这个功能在任何地方都没有真正的文档记录)

但是,如果在PHP解释器中签出实施 of reset(),就会看到它将函数参数定义为Z_PARAM_ARRAY_OR_OBJECT_HT_EX,根据内部文档的意思(强调reset()):

Z_PARAM_ARRAY_OR_OBJECT_HT 将应该解析为数组或对象的参数指定为HashTable。如果参数是一个对象,那么该对象的属性表将被使用…… - 相内件

使用这种类型参数的其他函数包括current()next(),它们也可能接受一个对象作为输入。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54846594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档