由于PHP 5.2中的匿名函数问题而在服务器上出错

时间:2017-08-04 08:30:30

标签: php google-analytics google-analytics-api

我正在使用“google-api-php-client”库,它在本地系统上工作正常,但它在服务器上出现以下错误,因为它的版本是5.2!

syntax error, unexpected T_FUNCTION, expecting ')'

所以我在这里有两个问题,如果我们可以通过对代码进行一些更改来修复此错误,以使其与此函数一起使用?以下是autoload.php的代码

spl_autoload_register(
function ($className) {
  $classPath = explode('_', $className);
  if ($classPath[0] != 'Google') {
    return;
  }
  // Drop 'Google', and maximum class file path depth in this project is 3.
  $classPath = array_slice($classPath, 1, 2);

  $filePath = dirname(__FILE__) . '/' . implode('/', $classPath) . '.php';
  if (file_exists($filePath)) {
    require_once($filePath);
  }
}
);

但是我不知道如何更改以上内容来解决这个问题,还有哪些库可以在php 5.2上运行?好像我使用它,它可能会开始在其他一些功能上给出错误。谢谢!

1 个答案:

答案 0 :(得分:1)

看来你的php版本不知道匿名函数或闭包。尝试使用命名的:

function autoloadGoogleApi($className) {
  $classPath = explode('_', $className);
  if ($classPath[0] != 'Google') {
    return;
  }
  // Drop 'Google', and maximum class file path depth in this project is 3.
  $classPath = array_slice($classPath, 1, 2);

  $filePath = dirname(__FILE__) . '/' . implode('/', $classPath) . '.php';
  if (file_exists($filePath)) {
    require_once($filePath);
  }
}

spl_autoload_register('autoloadGoogleApi');

不过,我还想指出,你指定的php版本是很旧,所以我建议考虑升级选项。< / p>

UPD: 3v4l test