开发者社区> 问答> 正文

PHP5.3不识别双引号的问题 400 请求出错 

PHP的版本升级为5.3+以后,代码不能正常运行。报类似如下错误

Parse error: syntax error, unexpected T_STRING 。。。。

查了一下,发现凡是用到双引号的地方都出错。
就算写一句 $a = "abc";  都出错。改成 $a = 'abc'; 就没问题了。

不知道这个问题该怎么解决(⊙o⊙)?

展开
收起
黄一刀 2020-05-26 20:30:48 528 0
1 条回答
写回答
取消 提交回答
  • 单独开个空白文件作测试呢?
    ######谢谢你的提醒,单独开了一个文件测试,没问题。应该是代码的问题。######感觉是前文有引号没结束######有可能是,我按这个思路找找######估计你用的是  Netbeans ,这东西会自作聪明,把括号,引号之类的删掉一般######我也不太了解都用了什么。不过,好像没有Netbeans--因为我还没他们提起过这个名字。######这绝对不是PHP的问题~######应该是代码的问题,可能是因为低版本的PHP不报相应的错,现在的PHP5.3严厉了,所以问题就暴露出来了。######

    太奇怪了!!!!

    调试了半天,发现不可以用  ”能“ 这个汉字!!

    只要某个字符串定义时,值里面有”能”这个字,那后面就不可以用单引号或者双引号。例如

    $a='能';的后面的代码中只要出现单引号就出错。
    $a="能";的后面的代码中只要出现双引号就出错。

    怪死了!!

    ######文件编码。
    ######我也觉得是不是可以改改编码解决问题。可以,应该用什么编码呢?######你能把报错信息完整贴上来么######

    引用来自“leo108”的答案

    你能把报错信息完整贴上来么

    文件名:test.php

    文件内容:

    <?php
    $a = 'abc能';
    $c='fsdf';
    echo $a; 
    ?>

    报错信息:

    PHP Parse error:  syntax error, unexpected T_STRING in /home/test/test.php on line 3
    ######

    暂时的结论:字符串变量的值的最后一个字是”能“时,会导致问题。

    暂时通过把所有以”能“结尾的字符串的”能“后面加个空格来解决了。

    不过,应该有更好的方法解决,暂时先这样了。

    ----不知道这算不算一个PHP的bug

    ######

    php 5.3.1 没有出现你所说的问题

    php 5.4.3 也没有出现你说的问题

    以上均使用 UTF-8 编码

    个人觉得没道理出现这样的问题。

    ######我把我的测试代码改成UTF-8格式的,问题解决了。 UTF-8应该是默认的吧。有什么地方可以设置一下让我的代码可以采用其他格式的吗?######我把我的测试代码改成UTF-8格式的,问题解决了。 UTF-8应该是默认的吧。有什么地方可以设置一下让我的代码可以采用非其他格式的吗?
    2020-05-27 10:10:32
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
阿里云栖开发者沙龙PHP技术专场-深入浅出网络编程与swoole内核-吴镇宇 立即下载
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载