我更新到PHP7.2,它创建了一个问题数组(没有双关语)。我已经消除了这些警告(主要是sizeof和count()警告。我们有一个错误:
警告:sizeof():参数必须是在第236行的/usr/www/domain/phpmyd/includes/class_registry.php中实现可数的数组或对象
我试着这样修复它:if(sizeof($this-
但它会产生更多的错误,如下所示,然而,我们用同样的方法修复了这个错误,它工作得非常完美。更改此选项:
如果(0
消除了基本相同的错误。现在,请记住,上面的警告是唯一剩下的错误。但是,如果我真的“修复”了警告,我会收到一堆错误,这些错误会破坏网站,并且看起来不相关。因此,如果替换第一个字符串,所有这些错误都会出现:
警告:在第6行的/usr/www/domainlistings/phpmyd/index.PHP中使用未定义的常量ADDON\u DISCOUNT\u代码-假定为“ADDON\u DISCOUNT\u代码”(这将在PHP的未来版本中引发错误)
这些错误并没有出现,而且在我更改
if(sizeof($this)之前,这些工作都做得很好-
这是如何联系起来的?我不确定这里发生了什么,这一行是如何影响或破坏其他(看似无关的)事情的。初始问题的完整代码(第236行):
/**
* Get a configuration value
* @param string $key
* @return mixed
*/
public function getConfig($key) {
if (sizeof($this->config) < 1) {
$this->loadConfig();
}
return isset($this->config[$key]) ? $this->config[$key] : false;
}
有什么想法吗?
首先,不要使用sizeof
,而是使用count
;)便宜的改进-总是少一个操作码。
其次,确保传递的数组不为null或任何值,例如:
// dirty fix
if (count((array) $this->config) > 0) {
…
}
要正确修复此问题,无论如何都不应该允许此属性为null。如果你在一些延迟加载检查变量是否为空或不是一个数组,例如:
public function getConfig($key, $default = false)
{
if (!is_array($this->config)) {
// make sure it becomes one after the load
$this->loadConfig();
}
return $this->config[$key]) ?? $default;
}
在传递变量之前,您可以检查它是否为数组:
if(is_array($this->config)){
if(sizeof($this.config) < 1) {
// code here
}
}
我认为这里发生的事情是,您最初所做的更改确保了loadConfig()
永远不会发生,并且loadConfig()
中的某些内容负责定义所有您在更改后收到警告的常量。
如果你改变了
if (sizeof($this->config) < 1) {
到
if (!empty($this->config) &&(sizeof($this->config) < 1)) {
然后如果$this-
sizeof
在那里从来没有真正的必要。你不必仅仅为了看它是否存在而数一数。
我认为这应该可以很好地工作,并且对它的实际用途更有意义。
if (empty($this->config)) {
$this->loadConfig();
}
嘿,朋友们,我需要一个解决方案来修复这个错误 警告:sizeof():参数必须是在第18行的C:\xampp\htdocs\my site\wp content\themes\kingdom\woocmerce\content-single-product.php中实现可数的数组或对象 PHP文件的行:
我刚刚升级了我的PHP安装从版本 经过搜索,我找到了与此类似的问题和答案,但它们都与WordPress有关,我找不到Pure PHP的解决方案。
请帮帮我 参数必须是实现可数的数组或对象 这是paypal.php代码 我没有看到错误,我已经呆了太久,寻找什么是我的错误
安装 让我们试着上一节课 好吧但是现在让我们尝试一个函数 现在有错误(警告)。为什么啊? 我还尝试通过composer安装phpdoc 但结果更糟 在这一点上,我想知道,这个phpdoc是一个有效的工具吗?是我不能用的吗?发生了什么?
我需要一个解决方案来修复这个错误。CMS Wordpress(4.4.21),插件Woocommerce(2.1.6)。PHP(7.3.6) sizeof():参数必须是一个数组或对象,在第237行实现 /var/www/u0900579/data/www/xxx/wp-content/plugins/woocommerce/includes/wc-conditional-functions.ph
我已经迁移到一个使用PHPV7(从我的PHPV5.4)的新服务器上,现在我的网站上显示错误。 这是返回错误的代码行: 我如何解决这个问题?