网站大量收购独家精品文档,联系QQ:2885784924

匯总PHP编程注意事项.docVIP

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
匯总PHP编程注意事项

汇总PHP编程注意事项 1、php隐性的三元操作符(?:)优先级问题: 例1: $person = $who or $person = laruence; //实际上是等同于: $person = empty($who)? laruence : $who; 例2: $arr = array(1=1,3=3); $i = 2; $a = test . isset($arr[$i]) ? $arr[$i] : $i; $a 是什么? 这个问题, 咋一看觉得简单,$a = test2; 其实仔细推敲后运行的,结果是notice:Undefined index 2... 由于优先级的问题, 连接符的优先级比三元操作符高。 首先是判断 test. isset($arr[$i]) 这个字符串永远是true,因此: $a = $arr[$i]; 以致php提示提醒。 2. PHP函数名和类名不区分大小写的,而变量名是区分大小写的。 所以自己写的php模块,往往是大写的问题,编译不通过。 3.序列化传递问题 把复杂的数据类型压缩到一个字符串中 serialize()把变量和它们的值编码成文本形式,unserialize() 恢复原先变量 $stooges = array(Moe,Larry,Curly); $new = serialize($stooges); echo pre; print_r($new); echo br /; print_r(unserialize($new)); echo /pre; 序列化结果:a:3:{i:0;s:3:Moe;i:1;s:5:Larry;i:2;s:5:Curly;} 反序列化结果:Array ( [0] = Moe [1] = Larry [2] = Curly ) 当把这些序列化的数据放在URL中在页面之间会传递时,需要对这些数据调用urlencode(),以确保在其中的URL元字符进行处理: $shopping = array( Poppy seed bagel = 2, Plain Bagel =1, Lox =4, ); echo a href=next.php?cart=.urlencode(serialize($shopping)).next/a; margic_quotes_gpc和magic_quotes_runtime配置项的设置会影响传递到unserialize()中的数据。 如果magic_quotes_gpc项是启用的,那么在URL、POST变量以及cookies中传递的数据在反序列化之前必须用stripslashes()进行处理: $new_cart = unserialize(stripslashes($cart)); //如果magic_quotes_gpc开启 $new_cart = unserialize($cart); 如果magic_quotes_runtime是启用的,那么在向文件中写入序列化的数据之前必须用addslashes()进行处理,而在读取它们之前则必须用stripslashes()进行处理: $fp = fopen(/tmp/cart,w); fputs($fp,addslashes(serialize($a))); fclose($fp); //如果magic_quotes_runtime开启 $new_cat = unserialize(stripslashes(file_get_contents(/tmp/cart))); //如果magic_quotes_runtime关闭 $new_cat = unserialize(file_get_contents(/tmp/cart)); 在启用了magic_quotes_runtime的情况下,从数据库中读取序列化的数据也必须经过stripslashes()的处理,保存到数据库中的序列化数据必须要经过addslashes()的处理,以便能够适当地存储。 mysql_query(insert into cart(id,data) values(1,.addslashes(serialize($cart)).)); $rs = mysql_query(select data from cart where id=1); $ob = mysql_fetch_object($rs); //如果magic_quotes_runtime开启 $new_cart = unserialize(stripslashes($ob-data)); //如果magic_quotes_runtime关闭 $new_cart = unserialize($ob-data); 当对一

文档评论(0)

sd47f8cI + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档