我正在尝试找出差异b / w是可数对象和不可数对象
首先,我找到了对象的类型
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.0正常工作,那么如何根据php 7.2将现有对象转换为可计数的方法。
答案 0 :(得分:2)
在实现接口Countable
时,对象是Countable
。
该接口正在为可数对象定义公共合同。这意味着作为合同的一部分,意味着您的类必须实现方法$object.count()
。
区别在于,一个实现Countable interface
的对象意味着您可以执行诸如count()
之类的PHP本机方法作为对象的参数传递,从而获得在该方法上定义的值已实施。例如,对于不可数的对象,您将得到警告。
答案 1 :(得分:1)
可能是黑客
echo count((array) $data["current_fiat_currency"]);
这只是一个补丁解决方案,我认为它仅在某些情况下会起作用,您不应依赖它。
答案 2 :(得分:0)
为了使对象可计数,它必须实现接口countable
并具有count
方法。即
class YourObject implements Countable
{
private $whatYouWantToCount = 0;
public function count()
{
return $this->whatYouWantToCount;
}
}