当前位置: 首页 > 知识库问答 >
问题:

sizeof():参数必须是数组或实现可数的对象

秦安宁
2023-03-14

请帮帮我

参数必须是实现可数的数组或对象

ErrorException {#654 ▼
  #message: "sizeof(): Parameter must be an array or an object that implements Countable"
  #code: 0
  #file: "C:\Primer_Proyecto\Ventas\vendor\paypal\rest-api-sdk-php\lib\PayPal\Common\PayPalModel.php"
  #line: 179
  #severity: E_WARNING
  trace: {▼
    C:\Primer_Proyecto\Ventas\vendor\paypal\rest-api-sdk-php\lib\PayPal\Common\PayPalModel.php:179 {▶}
    Illuminate\Foundation\Bootstrap\HandleExceptions->handleError() {}
    C:\Primer_Proyecto\Ventas\vendor\paypal\rest-api-sdk-php\lib\PayPal\Common\PayPalModel.php:179 {▶}
    C:\Primer_Proyecto\Ventas\vendor\paypal\rest-api-sdk-php\lib\PayPal\Common\PayPalModel.php:281 {▶}
    C:\Primer_Proyecto\Ventas\vendor\paypal\rest-api-sdk-php\lib\PayPal\Common\PayPalModel.php:296 {▶}
    C:\Primer_Proyecto\Ventas\vendor\paypal\rest-api-sdk-php\lib\PayPal\Api\Payment.php:557 {▶}
    C:\Primer_Proyecto\Ventas\app\paypal.php:26 {▼
      › try{\r
      › \t$payment->create($this->_apiContext);\r
      › }\r
      arguments: {▶}
    }

这是paypal.php代码

public function generate(){
    $payment = \PaypalPayment::payment()->setIntent("sale")
        ->setPayer($this->payer())
        ->setTransactions([$this->transaction()])
        ->setRedirectURLs($this->redirectURLs());

    try {
        $payment->create($this->_apiContext);
    }
    catch(\Exception $ex){
        dd($ex);
        exit(1);
    }

    return $payment;
}


public function __construct($shopping_cart){
    $this->_apiContext = \PaypalPayment::ApiContext($this->_ClientId, $this  ->_ClientSecrete);
    $config = config("paypal_payment");
    $flatConfig = array_dot($config);
    $this->_apiContext->setConfig($flatConfig);
    $this->shopping_cart = $shopping_cart;
}

我没有看到错误,我已经呆了太久,寻找什么是我的错误

共有1个答案

汝彭薄
2023-03-14

错误出现在您正在使用的paypal\rest-api-sdk-php包中。您正在使用的包的版本显然与PHP 7.2不完全兼容。

您得到的特定错误已在包的最新版本(1.13.0)中修复。将软件包更新到最新版本,此问题将得到修复。不过,我不能说还会出现什么其他问题。

1.12.0版本中,出现故障的具体行是:

} elseif (sizeof($v) <= 0 && is_array($v)) {

在PHP7.2中,如果$v不可计数,则sizeof()调用将发出警告,而Laravel会将该警告转换为异常。

1.13.0版本中,他们将条件更新为

} elseif (is_array($v) && sizeof($v) <= 0) {

现在,只有当$v是一个数组时,才会调用sizeof(),因此保证是可数的,从而消除了警告。

 类似资料:
  • 我需要一个解决方案来修复这个错误。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

  • 嘿,朋友们,我需要一个解决方案来修复这个错误 警告:sizeof():参数必须是在第18行的C:\xampp\htdocs\my site\wp content\themes\kingdom\woocmerce\content-single-product.php中实现可数的数组或对象 PHP文件的行:

  • 我更新到PHP7.2,它创建了一个问题数组(没有双关语)。我已经消除了这些警告(主要是sizeof和count()警告。我们有一个错误: 警告:sizeof():参数必须是在第236行的/usr/www/domain/phpmyd/includes/class_registry.php中实现可数的数组或对象 我试着这样修复它:

  • 我有这个代码返回一个错误: 参数必须是实现可数的数组或对象?

  • 我试图安装PayPal我的localhost,但当我测试payment.php得到以下警告在这个文件: 警告:sizeof():参数必须是在第176行的/Applications/MAMP/htdocs/functions/PayPal/vendor/PayPal/restapi sdk php/lib/PayPal/Common/PayPalModel.php中实现可数的数组或对象 paymen

  • 我在PHPmyadmin中有一些奇怪的错误。 ./libraries/pmd_common.php#405 count()中的警告:参数必须是实现可计数的数组或对象 回溯 ./db_designer.php#102:PMA_getLoadingPage(字符串'db_Name') 如何修复它?