gpt4 book ai didi

PHP 7.2 计数错误

转载 作者:行者123 更新时间:2023-12-01 22:06:03 25 4
gpt4 key购买 nike

Warning: count(): Parameter must be an array or an object that implements Countable in...

我在以下行中收到上述错误。

if (0 >= count($this->xprop))

有人能帮我理解一下吗?我是 PHP 的新手。问题显然是 $this->xprop 不是数组。在我升级到 PHP 7.2 之前,这不是问题。我该如何解决这个问题?带有警告的代码是否仍在执行,或者这是否会导致执行失败?

我尝试按照 here 上的第二个答案进行操作没有运气。接受的答案对我来说是 Not Acceptable ,因为它更像是一个 hack。

最佳答案

PHP 7.2 在尝试计算未设置的变量或获取其大小时会抛出错误。在以前的版本中,作者会通过对变量进行计数(或 sizeof'ing)来快捷地检查变量是否已设置,并在未设置的变量上得到“0”。

解决方案是在计算之前检查它是否已设置:

if (isset($this->xprop) && count($this->xprop) == 0)

您上面的示例实际上是负逻辑,并且是一种非常奇怪的陈述“如果此数组的大小为零或小于零”的方式(这是不可能的)。因此,按照上面的示例,符合 PHP 7.2 的版本将使用 empty:

if (empty($this->xprop))

...因为可以设置变量 ($xprop = array()) 但仍然为空。

抱歉,如果这有点不清楚;这里很晚了!

犯规

关于PHP 7.2 计数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51957945/

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