ラボ > PHP:各種エラー

PHP5.4 「xxx::class」で「unexpected 'class' (T_CLASS)」というエラー

PHPをバージョンアップすれば解決するヤツ・・・

作成日:2020-10-13, 更新日:2020-10-13

出てきたエラー

Parse error: syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in /xxx/xxx.php on line xxx

エラーになった対象のソース1

if (!class_exists(Mail::class)) {

エラーになった対象のソース2

Assert::isInstanceOf($send_at, 'send_at', SendAt::class);

原因

PHPのバージョンが古いため:PHP5.4

対策

手っ取り早いのはPHPのバージョンアップ(※PHP5.5以上にすれば解決するらしい)
ただし、今回は、バージョンアップするという選択肢は使えない

ということでソースを書き換える

エラーになった対象のソース1の対策

▼「xxx:class」を「'xxx'」に置き換える

// if (!class_exists(Mail::class)) {
if (!class_exists('Mail')) {

エラーになった対象のソース2の対策

▼「xxx::class」を「get_class(new xxx)」に置き換える

// Assert::isInstanceOf($send_at, 'send_at', SendAt::class);
Assert::isInstanceOf($send_at, 'send_at', get_class(new SendAt));