首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sizeof():参数必须是实现可数的数组或对象

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

Stack Overflow用户
提问于 2018-03-27 06:44:11
回答 1查看 37.7K关注 0票数 8

,帮帮我,

获取错误大小():参数必须是实现可数的数组或对象

代码语言:javascript
复制
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代码

代码语言:javascript
复制
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;
}

我没有看到错误,我一直在寻找我的错误,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-27 07:39:23

错误出现在您正在使用的paypal\rest-api-sdk-php包中。显然,您所使用的包的版本与PHP7.2并不完全兼容。

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

1.12.0版本中,失败的具体行是:

代码语言:javascript
复制
} elseif (sizeof($v) <= 0 && is_array($v)) {

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

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

代码语言:javascript
复制
} elseif (is_array($v) && sizeof($v) <= 0) {

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

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49506003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档