Parse error:syntax error、unexpected T_FUNCTION、expecting ')' ...エラー

0

WordPress テーマやプラグインのインストール時に、次のようなエラーが発生した場合:

Parse error: syntax error, unexpected T_FUNCTION, expecting ')' in /home/.../wp-content/themes/.../xxxxx.php on line 111

テーマや関数に匿名関数(Anonymous function)が使用される場合、このような問題が発生する可能性があります。

匿名関数とは...

$greet = function($name)
{
    printf("Hello %s\r\n", $name);
};
$greet('World');
$greet('PHP');

匿名関数は通常の関数と似ていますが、名前が示すように 匿名関数は名前がありません。 上記のコードは、http://php.net/の Anonymous functionsページに出てきた匿名関数の例です。 ここで

  1. functionキーワードと開始括弧( ')')の間に 関数名がありません.
  2. 関数の定義は、次のセミコロン(;)があります。 これは、通常の関数の定義は、「コードの構文」であるのに対し、匿名関数の定義が「式」であるからです(PHP Anonymous Functions:What Are They、and Why Use Them? を参照)。

問題の解決方法

匿名関数は、PHP 5.3バージョンから導入されました。 したがって、PHPのバージョンを5.3以降のバージョンにアップグレードすると、問題が解決されます。 PHPのバージョンを確認するには、 phpinfo()関数を使用します。

Webホスティングサービスを利用する場合のホスティング会社で簡単にPHPのバージョンをアップグレードするためのオプションを提供していますが、そうでない場合は、ホスティング会社に連絡してPHPのバージョンの更新を要求する必要があります。

この方法で問題を解決できない場合はテーマの作成者やプラグインの作成者に連絡して、問題の解決を要求するようにしてください。

追加:PHPバーボンをアップグレードすることができない場合

PHPのバージョンを更新することができない場合:

まず、問題となる部分の関数を検索します。

add_action('widgets_init', function()
{
return register_widget('Fanoe_Social_Media_Widget');
});

問題となる関数が上記のような関数形であれば、以下のような形式に変更してみましょう(参照).

// Fanoe_Social_Media_Widget 등록
function register_fanoe_social_media_widget() {
register_widget( 'Fanoe_Social_Media_Widget' );
}
add_action( 'widgets_init', 'register_fanoe_social_media_widget' );

その後、一時的に問題を解決することができます。

2018年追加 - WordPress

2018年現在 WordPress 推奨PHPのバージョンは7.2です。

WordPress推奨バージョンのPHPを7.2以上に調整

WordPressを使用する場合は、なるべく7.1あるいは7.2以上を使用することが望ましい。 PHP 5は2018年12月末にサポートが終了するため、サポートが終了した後には、安全でないことがあります。

PHP 5が2ヶ月後に寿命が終了して、セキュリティ更新プログラムが中断されます

ちなみに海外ホスティング SiteGroundでは、現在PHP 7.3までサポートします(参照). Bluehost 共有ホスティングの場合2018年11月現在PHP 7.0までサポートしますが、近いうち新しいPHPバージョンのサポートを追加する予定だとします。

コメントを残す

コメントを入力してください!
名前を入力してください