在Ubuntu的Digital Ocean上安装了新的Laravel。当前的PhP安装。我添加了几行代码以吐出错误,Apache2可以很好地访问Php。这是输出:
解析错误:语法错误,/var/www/html/blog/vendor/laravel/framework/src/Illuminate/Support/Arr.php在行388上出现意外的'='
public static function pluck($array, $value, $key = null)
{
$results = [];
[$value, $key] = static::explodePluckParameters($value, $key);
foreach ($array as $item) {
$itemValue = data_get($item, $value);
// If the key is "null", we will just append the value to the array and keep
// looping. Otherwise we will key the array using the value of the key we
// received from the developer. Then we'll return the final array form.
if (is_null($key)) {
$results[] = $itemValue;
} else {
$itemKey = data_get($item, $key);
if (is_object($itemKey) && method_exists($itemKey, '__toString')) {
$itemKey = (string) $itemKey;
}
$results[$itemKey] = $itemValue;
}
}
return $results;
}
第888行是:
[$value, $key] = static::explodePluckParameters($value, $key);
当使用“ laravel new(站点名称)”创建新站点时,Laravel自动创建密钥。
服务器正在运行我的其他站点。我已经做了几个干净的Laravel安装,同样的问题。
答案 0 :(得分:3)
之所以发生这种情况,是因为评估此脚本的PHP不是7.2版。该版本低于7.1。数组解构分配是在7.1-https://wiki.php.net/rfc/short_list_syntax
中引入的您需要确定安装了哪些PHP版本,以及究竟是哪个版本在执行代码。
答案 1 :(得分:0)
希望这对某人有帮助。因此,您需要做的是转到/ etc / apache2 / mods-enabled ls-l,并查看加载了哪个php版本。 “ sudo a2dismod php7.0”禁用php7.0 mod并使用“ sudo a2enmod php7.2”。使用“ systemctl restart apache2”重新启动apache2,您应该会很好。