ITサポート

Parse error: syntax error, unexpected ‘&’ in …が表示される

PHP7 に対応したプログラムでない場合、以下のようなエラーが出ることがあります。

Parse error: syntax error, unexpected '&' in /home/....(該当のソースコードの場所)

このエラーは、参照渡しに関わる部分です。このようなエラーが出た場合、出たエラーのソースコードの場所、名前から関わっているソフトウェアを特定してください。

例えば、

Parse error: syntax error, unexpected '&' in /home/hogehoge/hoge.com/public_html/commu/admin_mysearch.php on line 136

上記のようになっている場合、commu のソースコードに問題があると考えられます。解決するには、


追加の情報

PHP 5.3.0 以降では、foo(&$a); のような形式で & を利用すると "Call-time pass-by-reference" を非推奨とする警告が発生します。 また、PHP 5.4.0 以降では call-time pass-by-reference 機能自体が削除されたので、 これを使おうとすると fatal エラーが発生します。 (引用)
PHP 5 以降、new は自動的にリファレンスを返すようになりました。そのため、この場面で =& を使用することは非推奨となりました。 PHP 5.3 以降では E_DEPRECATED、それより前のバージョンでは E_STRICT レベルのメッセージが表示されます。 また、PHP 7.0.0 以降は、文法的に無効となります (引用)

主に、上記の内容がPHP7, PHP7.1 で問題になりやすいです。