php - 可数对象和不可数对象有什么区别

标签 php object count php-7.2 php-7.0

我正在尝试找出可数对象和不可数对象的黑白差异

首先我找出了对象的类型

echo gettype($data["current_fiat_currency"]);

这是一个对象

但是当我检查它是否是可数对象时

var_dump($data["current_fiat_currency"] instanceof Countable );

然后它返回

 False

下面是对象内容

var_dump($data["current_fiat_currency"]);

object(stdClass)[2010]
  public 'id' => string '1399' (length=4)
  public 'currency_name' => string 'US Dollar' (length=9)
  public 'currency_slug' => string '' (length=0)
  public 'currency_code' => string 'USD' (length=3)
  public 'currency_logo' => string '0' (length=1)
  public 'currency_type' => string '3' (length=1)
  public 'logo' => string '.png' (length=4)
  public 'exe' => string '0' (length=1)
  public 'logo_exe' => string '1' (length=1)
  public 'symbol_native' => string '$' (length=1)
  public 'symbol' => string '$' (length=1)
  public 'name_plural' => string 'US dollars' (length=10)
  public 'market_cap' => string '0' (length=1)
  public 'circulating_supply' => string '0' (length=1)
  public 'max_supply' => string '0' (length=1)
  public 'total_supply' => string '0' (length=1)
  public 'cryptoid_info_exe' => string '0' (length=1)
  public 'show_on_website' => string '1' (length=1)
  public 'default_selected' => string '1' (length=1)
  public 'exchange_rate' => string '1' (length=1)
  public 'currencies_stats_exe' => string '0' (length=1)
  public 'currencies_stats_last_updated' => null
  public 'mineable_or_not' => string '0' (length=1)
  public 'show_on_top_bar' => string '0' (length=1)
  public 'added_date' => string '2018-01-11 05:21:37' (length=19)
  public 'graph_size_chart_status' => string '0' (length=1)
  public 'twitter' => null
  public 'reddit' => null
  public 'status' => string '1' (length=1)
  public 'for_pair_status' => string '0' (length=1)

如果现有对象根据 Php 7.2 不可数,我该如何将其转换为可数对象,因为我的代码在 Php 7.0 中运行良好。

最佳答案

当实现接口(interface)Countable时,一个对象是Countable

该接口(interface)正在为可数对象定义一个公共(public)契约。这意味着作为契约的一部分,意味着您的类必须实现方法 $object.count()

不同之处在于,一个对象实现了 Countable 接口(interface),这意味着您可以执行 count 个 PHP native 方法,例如 count() 将您的对象作为参数传递,具有结果是您在实现的方法上定义的值。例如,对于不可数对象,您将收到警告

关于php - 可数对象和不可数对象有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52815632/

相关文章:

PHP:面向对象的代码 - 找不到类 'x',但有

php - php 表单中的提交按钮也可以作为 anchor 吗?

PHP 代理对象

mysql - 从多个表中选择rowid

python - 在 python 字典列表中查找最常用的单词

php在windows中执行exec时挂起

php - 如何通过知道管理页面 url 来防止访问管理页面?

javascript - 这是普通函数、构造函数还是两者都不是?

php - 使用变量名实例化 PHP 对象时捕获错误

hadoop - MapReduce:给定数字文件,输出不重复/唯一数字的数量