纳速健身

标题: drupal8安装时提示functions.php括号不匹配安装错误 [打印本页]

作者: awagink    时间: 2016-1-18 21:47
标题: drupal8安装时提示functions.php括号不匹配安装错误
求助:在安装drupal8时,php-fpm返回的日志中打印functions.php括号不匹配,具体错误日志如下:
[02-Jan-2015 21:59:37] PHP Parse error:  syntax error, unexpected '[', expecting ')' in /usr/share/nginx/html/drupal8/core/vendor/react/promise/src/functions.php on line 62
[03-Jan-2015 00:20:43] PHP Parse error:  syntax error, unexpected '[', expecting ')' in /usr/share/nginx/html/drupal8/core/vendor/react/promise/src/functions.php on line 62
[03-Jan-2015 00:21:37] PHP Parse error:  syntax error, unexpected '[', expecting ')' in /usr/share/nginx/html/drupal8/core/vendor/react/promise/src/functions.php on line 62

对于的function.php文件如下:
其中62行对应一个if匹配:
  1. if (!is_array($array) || !$array || $howMany < 1) {
  2.                 return resolve([]);
  3. }
复制代码

从代码看并没有错误,而且源代码我也没修改过。
完整的函数如下:

  1. function some($promisesOrValues, $howMany)
  2. {
  3.     return resolve($promisesOrValues)
  4.         ->then(function ($array) use ($howMany) {
  5.             if (!is_array($array) || !$array || $howMany < 1) {
  6.                 return resolve([]);
  7.             }

  8.             return new Promise(function ($resolve, $reject, $progress) use ($array, $howMany) {
  9.                 $len       = count($array);
  10.                 $toResolve = min($howMany, $len);
  11.                 $toReject  = ($len - $toResolve) + 1;
  12.                 $values    = [];
  13.                 $reasons   = [];

  14.                 foreach ($array as $i => $promiseOrValue) {
  15.                     $fulfiller = function ($val) use ($i, &$values, &$toResolve, $toReject, $resolve) {
  16.                         if ($toResolve < 1 || $toReject < 1) {
  17.                             return;
  18.                         }

  19.                         $values[$i] = $val;

  20.                         if (0 === --$toResolve) {
  21.                             $resolve($values);
  22.                         }
  23.                     };

  24.                     $rejecter = function ($reason) use ($i, &$reasons, &$toReject, $toResolve, $reject) {
  25.                         if ($toResolve < 1 || $toReject < 1) {
  26.                             return;
  27.                         }

  28.                         $reasons[$i] = $reason;

  29.                         if (0 === --$toReject) {
  30.                             $reject($reasons);
  31.                         }
  32.                     };

  33.                     resolve($promiseOrValue)
  34.                         ->then($fulfiller, $rejecter, $progress);
  35.                 }
  36.             });
  37.         });
  38. }
复制代码



----------------------------------------------------------------------------------------------------------------
解决方法:
是PHP版本问题,你安装php 5.4以上就没了。




欢迎光临 纳速健身 (https://www.nasue.com/) Powered by Discuz! X3.4