经过再次反复测试,取得全局变量在[ ]中真的不用加单引号!请各位高手进来分析一下!! 版主大哥也请进来看看!!绝对不是无聊之举!!

tianyaxiao 2006-04-23 11:35:58
经过再次反复测试,取得全局变量在[ ]中真的不用加单引号!
如:$_SERVER[HTTP_REFERER]而不用$_SERVER['HTTP_REFERER']
请大家不要说我无聊,因为不加这个单引号会减少很多工作流程,少用很多连接符, 但是我不知道这样写代码会不会出现问题,尤其是在非WINDOWS系统下,请大家帮忙分析一下,这个全局变量中的单引号的历史是不是可以结束了!!!
...全文
190 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
thunderx 2006-04-24
  • 打赏
  • 举报
回复
加上单引号,不加会误认为是常量;
至于:$myquery="insert into news(title) values ('$_POST['title']')";
字符里里不能直接引用数组元素值,需要用连接符或{}
tianyaxiao 2006-04-24
  • 打赏
  • 举报
回复
咳!好想问问PHP的开发人员这个问题啊!!
tianyaxiao 2006-04-24
  • 打赏
  • 举报
回复
那你再看看这句SQL:
$myquery="insert into news(title) values ('$_POST['title']')";
从理论上来讲之所以能够正常的执行是因为单引号被双引号给屏蔽成了普通字符,所以POST的变量才能够获取,这句SQL在PHP中执行时实际上根本就没有单引号的存在,所以$_POST['title']是在按$_POST[title]进行执行!!现在有很多程序员都采用这种方式来操作数据库,那他们岂不是都面临大麻烦了!!!
daofeng125 2006-04-24
  • 打赏
  • 举报
回复
$myquery="insert into news(title) values ('$_POST['title']')";
改为
$myquery="insert into news(title) values ('{$_POST['title']}')";应该就没有报错了吧,.

xuzuning 2006-04-24
  • 打赏
  • 举报
回复
数组的键名用单引号括起是良好的书写习惯

当没有这样做的时候
在 error_reporting = E_ALL & ~E_NOTICE 时确实不会报错
但 error_reporting = E_ALL 就不行的了

php在访问没有用单引号括起的键名时,首先检查该键名是否为常量,然后在当作串处理
如果error_reporting = E_ALL,那么就会因为找不到常量而报错

虽然先查找常量也花不了多少时间,但不去找不就更快吗?


“那你再看看这句SQL:
$myquery="insert into news(title) values ('$_POST['title']')";
从理论上来讲之所以能够正常的执行是因为单引号被双引号给屏蔽成了普通字符,所以POST的变量才能够获取,这句SQL在PHP中执行时实际上根本就没有单引号的存在,所以$_POST['title']是在按$_POST[title]进行执行!!现在有很多程序员都采用这种方式来操作数据库,那他们岂不是都面临大麻烦了!!!”
首先你的语句就是错误的,这条语句连语法检查都不能通过,更不要说执行了
位于双引号中的键名是不能用单引号括起的,除非你用{}将数组元素整个括起

有关这些描述在手册中都有,请认真阅读
不要图一时省事,而造成事故隐患。修改起来可是很费劲的!

ymanh 2006-04-23
  • 打赏
  • 举报
回复
在 PHP 中,使用一个不用引号括起来的字符串作为一个关联数组的键名是不合法的。

error_reporting(E_ALL);
$foo = array('bar' => 'bar');
$bar = $foo[bar];


看看报错信息, 就会知道解释引擎试图查找一个名为 bar 的常量, 在查找不到的情况下才假设它是字符串 bar, 如此一来, 性能被白白损耗掉了. 因此明确标明关联数组的键名为字符串是绝对必要的.
iasky 2006-04-23
  • 打赏
  • 举报
回复
最好还是加上,不知道为什么不加,工作量就小了?

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧