【发布时间】:2019-03-19 19:35:31
【问题描述】:
我正在尝试找出可数对象和不可数对象的区别
首先我发现了对象的类型
echo gettype($data["current_fiat_currency"]);
Object
但是当我检查它是否是可数对象时
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'(它“需要”方法“count”),然后可以用函数
count($obj)进行计数 -
这是一个简单的例子:3v4l.org/jas2h
-
文档中的这个例子更好地描述了它:php.net/manual/en/class.countable.php#98303
-
我认为您不能将现有的 stdClass 对象“转换”为实现可数的类。也许展示用例(你需要它是可数的)以找到解决方法?
标签: php object count php-7.2 php-7.0