Неожиданный символ на входе: '\' (ASCII = 92) state = 1

Мой клиент говорит, что он получает эту ошибку, используя мой скрипт:

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /path/to//header.php on line 34 Parse error: syntax error, unexpected T_STRING, expecting T_CONSTANT_ENCAPSED_STRING or '(' in/path/to/header.php on line 34 

Строка 34 в header.php – это просто use \Main\Class;

Теперь я сказал ему, что у него должен быть PHP >= 5.3.0 и он говорит, что его версия PHP – 5.3.24

В чем может быть проблема?

EDIT: линии до и после

 30. // Define absolute path 31. define("ABSPATH", $abs_path); 32. $_SESSION["abs_path"] = ABSPATH; 33. 34. use \CNS\main\CNS; 35. $cns = new CNS(); 

EDIT 2:

Он прислал мне это:

 Program Version Apache: 2.2.24 CentOS: CentOS release 6.4 (Final) cPanel: 11.36.1 (build 8) Curl: 7.12.1 MySQL 5.5.30 phpMyAdmin 3.5.5 Python: 2.6.6 Program Version Perl: 5.8.8 **PHP: 5.3.24** ionCube Loader: 4.2.2 Zend Optimizer: 3.3.9 Ruby: 1.8.7 Rails: 3.2.8 OpenSSL: 1.0.0-fips 

Это происходит, если вы пытаетесь использовать пространства имен, но не имеете PHP 5.3. PHP 5.2 и ниже не поддерживают пространства имен и бросают эту ошибку, когда видят обратную косую черту.

– Изменить: перепутали версии. Это 5.2 и ниже, у которых нет пространств имен, если я не ошибаюсь.

Теперь я сказал ему, что у него должен быть PHP> = 5.3.0, и он говорит, что его версия PHP – 5.3.24

В чем может быть проблема?

Его PHP-версия на самом деле <5.3.0, знает ли он это или нет.

См. Ошибку, возникающую во многих версиях PHP .

Если после указанной ошибки вы получаете сообщение об ошибке «неожиданное T_STRING», вам необходимо установить PHP 5.4+

Попросите его создать файл с phpinfo() . Вероятно, у него нет версии PHP> = 5.3.0 .

Я столкнулся с той же проблемой, и я провел некоторое исследование, которое мне удалось исправить. В моем случае я использую PHP7, и мне нужно было отредактировать файл laravel, расположенный в ~/.composer/vendor/laravel/installer/ , где строка shebang была #!/usr/bin/env php I изменена на #!/usr/bin/env php7

После повторного запуска ремесленника, я получил его работу:

 -bash-3.2$ laravel Laravel Installer version 1.3.3 Usage: command [options] [arguments] Options: -h, --help Display this help message -q, --quiet Do not output any message -V, --version Display this application version --ansi Force ANSI output --no-ansi Disable ANSI output -n, --no-interaction Do not ask any interactive question -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug Available commands: help Displays help for a command list Lists commands new Create a new Laravel application. 
 <FilesMatch "\.(inc|php|php3|php4|php44|php5|php52|php53|php54|php55|php56|phtml|phps)$"> AddHandler x-httpd-php53 .php </FilesMatch> 

в .htaccess

Как и другие пользователи говорят: использование пространств имен применимо только для версий PHP более 5,3,0, поэтому мое решение о возможности использования дополнительного использования библиотеки с использованием пространств имен – это проверить версию php и использовать функцию eval (), чтобы избежать что более низкие версии PHP снимают ошибку.

Что-то вроде этого:

 if ( phpversion() > '5.3.0' ){ include_once('/path/to/Library.php'); eval("Library\Foo::bar();"); }