2015-08-25 21 views
18

Sau khi cài đặt laravel chúng tôi nhận được một lỗi:Laravel phân tích lỗi: lỗi cú pháp, T_CLASS bất ngờ, mong T_STRING hoặc T_VARIABLE

Parse error: syntax error, unexpected T_CLASS, expecting T_STRING or T_VARIABLE or '$' in C:\xampp\htdocs\laravel\public\index.php on line 50

+0

Phiên bản PHP của bạn? – idmean

+0

Tôi vẫn gặp sự cố này và chúng tôi không thể đưa ứng dụng Laravel của mình vào hoạt động. Chúng tôi đang sử dụng php 5.6. cho apache và cho dòng lệnh. "php -v" cho "5.6" –

+0

Bạn đã tạo khóa chưa? – Nikonah

Trả lời

26

Laravel 5.1 sử dụng ::class property để có được cơ quan đại diện chuỗi của một classname đầy đủ. Lỗi bạn đang gặp phải là do this line

$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); 

Tính năng ngôn ngữ này đã được giới thiệu trong PHP 5.5 là yêu cầu của Laravel 5.1. Phiên bản PHP đã cài đặt của bạn có thể lớn hơn 5.5. Hãy thử cập nhật nhị phân PHP của bạn.


Trong trường hợp bạn quan tâm đến lý do tại sao ::class được sử dụng, hãy xem this answer

+0

Tôi đang sử dụng php 5.6.0, nhưng tôi vẫn nhận được lỗi "Phân tích cú pháp: lỗi cú pháp, bất ngờ 'lớp' (T_CLASS), số nhận dạng mong đợi (T_STRING) hoặc biến (T_VARIABLE) hoặc '{' hoặc '$' trong C: \ wamp \ www \ laravelmaster \ public \ index.php trên dòng 50', tôi đã kiểm tra từ cmd như 'php -v' và sử dụng laravel 5.2 – 151291

+3

@ 151291 Phiên bản php của CLI của bạn (phiên bản bạn nhận được bằng' php -v') có thể khác với máy chủ web sử dụng. Đặt 'phpinfo()' vào một tệp PHP và mở nó trong trình duyệt của bạn. Ở đó bạn sẽ thấy phiên bản thực tế máy chủ của bạn sử dụng ... – lukasgeiter

1

phiên bản PHP của bạn trên xampp của bạn thấp hơn 5.5.9 như quy định trong Laravel 5.1 doc.

Chỉ cần gỡ cài đặt phần mềm Xampp hiện tại của bạn và tải xuống bản sao mới tại trang web Apache với đặc điểm kỹ thuật này 5.6.12/PHP 5.6.12.

Đừng quên cộng tác với nhà cung cấp dịch vụ lưu trữ để đảm bảo rằng tài khoản lưu trữ của bạn chạy phiên bản PHP yêu cầu (> = 5.5.9) trong khi triển khai ứng dụng Laravel 5.1 trực tuyến.

+0

Phiên bản có thể cũng gây ra điều đó. Nhưng hãy chắc chắn rằng bạn nhận được phiên bản thực sự trên máy chủ của bạn, máy ảo hoặc bất cứ điều gì bạn đang sử dụng – Nikonah

1

Điều tương tự cũng xảy ra với tôi. Tôi thấy rằng máy chủ web đang sử dụng phiên bản PHP cũ của tôi 5. Để giải quyết nó cho tôi, tôi đã làm điều này -

sudo a2dismod php5 
sudo a2enmod php7.0 
sudo service apache2 restart 
Các vấn đề liên quan