gpt4 book ai didi

PHP 通过参数传递数组

转载 作者:太空宇宙 更新时间:2023-11-03 16:06:58 28 4
gpt4 key购买 nike

我正在尝试使用 PHP 中的 PayPal API,但我在通过函数参数传递数组时遇到了问题。我一直在看this tutorial .如果您查看 21:00 左右,您会看到他们正在编写大部分代码。我在第 34 和 59 行遇到问题:

<?php
use PayPal\Api\Payer;
use PayPal\Api\Item;
use PayPal\Api\ItemList;
use PayPal\Api\Details;
use PayPal\Api\Amount;
use PayPal\Api\Transaction;
use PayPal\Api\RedirectUrls;
use PayPal\Api\Payment;
use PayPal\Exception\PayPalConnectionException;

require 'start.php';

if(!isset($_POST['product'], $_POST['price'])) {
echo "Product or price not set";
die();
}

$product = $_POST['product'];
$price = $_POST['price'];
$shipping = 2.00;
$total = $price + $shipping;

$payer = new Payer();
$payer->setPaymentMethod('paypal');

$item = new Item();
$item->setName('test')
->setCurrency('USD')
->setQuantity(1)
->setPrice($price);

$itemList = new ItemList();
$itemList->setItems([$item]);

$details = new Details();
$details->setShipping($shipping)
->setSubtotal($price);

$amount = new Amount();
$amount->setCurrency('USD')
->setTotal($total)
->setDetails($details);

$transaction = new Transaction();
$transaction->setAmount($amount)
->setItemList($item)
->setDescription('Testing')
->setInvoiceNumber(uniqid());

$redirectUrls = new RedirectUrls();
$redirectUrls->setReturnUrl(SITE_URL . '/pay.php?success=true')
->setCancelUrl(SITE_URL . '/pay.php?success=false');

$payment = new Payment();
$payment->setIntent('sale')
->setPayer($payer)
->setRedirectUrls($redirectUrls)
->setTransactions([$transaction]);

try {
$payment->create($paypal);
} catch (PayPalConnectionException $e) {
echo $e->getData();

}

echo $approvalUrl = $payment->getApprovalLink();

我使用的这段代码:

$itemList = new ItemList();
$itemList->setItems([$item]);

和:

$payment = new Payment();
$payment->setIntent('sale')
->setPayer($payer)
->setRedirectUrls($redirectUrls)
->setTransactions([$transaction]);

将数组传递到方法中,如视频中所示。但是,这导致页面无法加载。如果我将代码更改为:

$itemList = new ItemList();
$itemList->setItems(array($item));

和:

$payment = new Payment();
$payment->setIntent('sale')
->setPayer($payer)
->setRedirectUrls($redirectUrls)
->setTransactions(array($transaction));

然后我收到一个关于 here 的 PayPal 错误但似乎没有人知道答案。自制作该视频教程以来,通过方法参数传递数组的语法是否发生了变化?还是我做错了什么?

最佳答案

数组 ($array = [1,2,3];) 的简短语法是 added in PHP 5.4 .如果您使用的是早期版本的 PHP,则需要使用更长的 $array = array(1,2,3); 语法。

但是 PHP 5.3 是 end-of-lifed in 2014 、去年的 5.4,而 5.5 只有接下来 13 天的安全修复程序。如果您还没有使用 5.6 或 7,您应该强烈考虑升级。

关于PHP 通过参数传递数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38041127/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com