致命错误-解析错误:语法错误,意外的“:”,预期-Wordpress

时间:2018-12-15 00:30:35

标签: wordpress parsing plugins syntax

我需要你的帮助。 我正在尝试安装ACF插件,并给我这个错误:

解析错误:语法错误,意外的“:”,期望为“;”或第23行的/home/htb/mysite/wp-content/plugins/acf-for-woocommerce/vendor/catsplugins/cp-core/src/common/class-cp-util.php中的'{'

这是第23行:

public static function pathToUrl(string $path): string {

代码如下:

<?php

namespace CastPlugin;


if (class_exists('CpUtil')) {
    return;
}


class CpUtil
{
    public static function startsWith($haystack, $needle)
    {
        return strncmp($haystack, $needle, strlen($needle)) === 0;
    }

    public static function contains($haystack, $needle)
    {
        return strpos($haystack, $needle) !== false;
    }

    public static function pathToUrl(string $path): string {
        $ssl          = @$_SERVER['HTTPS'];
        $serverName   = $_SERVER['SERVER_NAME'];
        $documentRoot = $_SERVER['DOCUMENT_ROOT'];
        $correctPath  = $path;

        $uri          = str_replace($documentRoot, '', $correctPath);

        $protocol = $ssl === 'on' ? 'https' : 'http';

        return "$protocol://$serverName$uri";
    }
}

任何想法如何解决这个问题? 谢谢。 :)

1 个答案:

答案 0 :(得分:2)

您使用的ACF版本需要PHP 7.0+。您收到的错误消息表明您使用的是PHP 5.6或更旧版本。您应该与您的托管服务提供商联系,以了解如何允许您升级到更新版本的PHP。

此错误专门由PHP 7.0中引入的新PHP方法声明语法引起,该语法使您可以声明所定义的方法将返回一个数组,您可以在此处阅读:http://php.net/manual/en/functions.returning-values.php#functions.returning-values.type-declaration

如果您的托管服务提供商不会升级您的PHP版本,建议您找到一个新的托管服务提供商。但是,如果需要同时使用ACF,则可以转到存储库中ACF的advanced页,然后在页面底部下载较旧的版本。

  

注意:这两种做法(使用过时的PHP版本和使用过时的插件)都可能不利于WordPress安装的长期健康。我建议至少尽快使用PHP 7.2,这将允许您使用最新版本的ACF。