首页 文章

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

提问于
浏览
1

help me please

geting error sizeof(): Parameter must be an array or an object that implements Countable

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: {▶}
    }

This is the paypal.php code


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;
}

I do not see the error, I have stayed too long looking for what is my mistake

1 回答

  • 6

    错误发生在您正在使用的 paypal\rest-api-sdk-php 包中 . 您使用的软件包版本显然与PHP 7.2不完全兼容 .

    您获得的具体错误已在最新版本的软件包中修复( 1.13.0 ) . 将程序包更新到最新版本,此问题将得到修复 . 但我不能说其他问题可能会出现 .

    1.12.0 版本中,失败的特定行是:

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

    在PHP 7.2中,如果 $v 不可数,则 sizeof() 调用将发出警告,并且Laravel会将该警告变为异常 .

    1.13.0 版本中,他们更新了条件

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

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

相关问题