私のクライアントは、彼が私のスクリプトを使用してこのエラーを取得していると言います:
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
header.php
の34行目はuse \Main\Class;
のみです
さて、私は彼にPHP >= 5.3.0
が必要だと言い、彼はPHPバージョンは5.3.24
何が問題なのでしょうか?
編集:前後の行
30. // Define absolute path
31. define("ABSPATH", $abs_path);
32. $_SESSION["abs_path"] = ABSPATH;
33.
34. use \CNS\main\CNS;
35. $cns = new CNS();
編集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+
私は同じ問題を実行し、いくつかの調査を行ってそれを修正しました。私の場合、PHP7を使用しています。ファイルを編集する必要がありましたlaravel ~/.composer/vendor/laravel/installer/
、Shebangラインは#!/usr/bin/env php
に変更しました#!/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.
phpinfo()
を使用してファイルを作成するように彼に依頼します。彼はおそらくPHP version> = 5.3.。
<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();");
}