Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 输入中出现意外字符:'\';(ASCII=92)状态=1_Php_Namespaces - Fatal编程技术网

Php 输入中出现意外字符:'\';(ASCII=92)状态=1

Php 输入中出现意外字符:'\';(ASCII=92)状态=1,php,namespaces,Php,Namespaces,我的客户说他使用我的脚本得到了这个错误: 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 php

我的客户说他使用我的脚本得到了这个错误:

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
phpheader.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

如果您试图使用名称空间,但没有PHP5.3,则会发生这种情况。PHP5.2及以下版本不支持名称空间,在看到反斜杠时抛出此错误

-- 编辑:混淆了版本。如果我没弄错的话,5.2及以下版本没有名称空间

现在,我告诉他必须让PHP>=5.3.0,他说他的PHP版本是5.3.24

有什么问题吗

不管他是否知道,他的PHP版本实际上是<5.3.0


.

请他用
phpinfo()
创建一个文件。他可能没有PHP版本>=5.3.0


<FilesMatch "\.(inc|php|php3|php4|php44|php5|php52|php53|php54|php55|php56|phtml|phps)$">

 AddHandler x-httpd-php53 .php

</FilesMatch>
AddHandler x-httpd-php53.php

在.htaccess中

如果在上述错误之后出现“意外的T_字符串”错误,您需要像其他用户所说的那样安装PHP 5.4+

:名称空间的使用仅对大于5.3.0的PHP版本有效,因此我的解决方案是检查PHP版本并使用eval()函数,以避免较低版本的PHP出现错误,即使在编译时也是如此

大概是这样的:

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

我运行了同样的问题,做了一些研究,我设法解决了它。 在我的例子中,我使用PHP7,我要做的是编辑位于
~/.composer/vendor/laravel/installer/
中的文件laravel,其中shebang行是
#/usr/bin/env php
我改成了
#/usr/bin/env php7

在再次运行artisan后,我使其工作:

-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.

@杰西卡-34岁我在第34行之前和之后添加了行
@OP
我认为如果可能的话,您可能必须向我们展示您的完整代码,除非
Jessica
可以在没有它的情况下找出这一行。@Fred他向我们展示了第34行,我要求查看第33行。@Fred之前没有太多,只是检查是否有一个变量表明脚本已安装,在这段代码之后,html就开始了。5.3确实支持名称空间,你可能是说5.2及以下。事实上,不准确的答案并不是很有用,即使它们只是大脑的小屁+1来修复它。@jrade,我目前有PHP5.1。有什么解决办法吗?对于PHP5.1的版本,他告诉我是5.3.24。当我要求他创建文件时,他没有使用
phpinfo()
创建文件,但他复制了一些统计数据(可能来自cpanel或其他东西)。我在我的帖子里把他的回复贴成了我的编辑2。事实上,我正在寻找这个你解释得很好的感谢伙伴