,帮帮我,
获取错误大小():参数必须是实现可数的数组或对象
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;
}我没有看到错误,我一直在寻找我的错误,
发布于 2018-03-27 07:39:23
错误出现在您正在使用的paypal\rest-api-sdk-php包中。显然,您所使用的包的版本与PHP7.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) {现在,只有当sizeof()是数组时才会调用$v,因此保证是可数的,从而消除了警告。
https://stackoverflow.com/questions/49506003
复制相似问题