我需要你的帮助。 我正在尝试安装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";
}
}
任何想法如何解决这个问题? 谢谢。 :)
答案 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。