任何人都可以帮我解决错误:::解析错误:语法错误,第14行/localhost/braintree/app.php中的意外T_FUNCTION

时间:2012-09-14 04:59:00

标签: php

<?php

require_once 'braintree-php-2.14.0/lib/Braintree.php';
require_once __DIR__ . 'silex/vendor/autoload.php';
Braintree_Configuration::environment('sandbox');
Braintree_Configuration::merchantId('...');
Braintree_Configuration::publicKey('...');
Braintree_Configuration::privateKey('...');
$app = new Silex\Application();
$app->get('/', function () {
    include 'views/form.php';
});
$app->run();
//$app->get("/braintree-php-2.14.0", function () {
$app->get("/braintree", function () {
   include 'views/response.php';
});
?>

这是braintree支付系统我清楚地阅读了文档但没有解决。在第14行中找到了错误:$ app-&gt; get(“/ braintree”,function(){

1 个答案:

答案 0 :(得分:2)

看起来问题是匿名函数仅在PHP 5.3+中可用。如果可能的话,我建议将服务器升级到最新版本的PHP,5.4.7。

另一个问题可能是你在添加响应挂钩之前调用$ app-&gt; run(),所以我将run()调用移到最后。

如果您无法升级PHP,则以下修复应该有效:

<?php
require_once 'braintree-php-2.14.0/lib/Braintree.php';
require_once __DIR__ . 'silex/vendor/autoload.php';
Braintree_Configuration::environment('sandbox');
Braintree_Configuration::merchantId('...');
Braintree_Configuration::publicKey('...');
Braintree_Configuration::privateKey('...');
$app = new Silex\Application();
function form() {
  include 'views/form.php';
}
$app->get('/', form);
function response() {
  include 'views/response.php';
}
$app->get("/braintree", response);
$app->run();
?>

我非常喜欢PHP 5.4的另一个原因是它includes a lightweight (ie not for production) server使测试和调试变得更加容易。我是一个Braintree开发者并写了这个来自的指南,所以我希望这有帮助!