PHP教程之岂非研讨PHP的人都是傻瓜吗?
PHP原始为Personal Home Page的缩写,已经正式更名为 "PHP: Hypertext Preprocessor"。注意不是“Hypertext Preprocessor”的缩写,这种将名称放到定义中的写法被称作递归缩写。 </p> 埋怨你的东西,其实不会让你的工作做得更好。我前一篇的「PHP 开辟迷思 (叁) – PHP 很糟?」,有网友写了一篇「 PHP 很烂」往返应。
我想说的是:对他来讲, PHP 切实其实很糟,所以真的不合适他;由于他援用了他人逗留在三四年前的 PHP 的不雅念来证实他对 PHP 的意见。还有,他看到的都是烂 PHP 法式。
不成否定, PHP 切实其实在后天上有所缺乏,只由于它出生的太早,良多累赘没法等闲脱节。即使 PHP 6 将会脱节这些束厄局促,但工夫点仿佛太晚?
所以呢?岂非研讨 PHP 的人都是傻瓜吗?
固然不是。
我不想为 PHP 平反甚么,我也不以为我能改动几何人对 PHP 的意见。这e我只想把这些人以为 PHP 烂的中央做个申明,剩下的就交给人人自行评议。
版本成绩
从 PHP 出生以来有十五年了,真正被人人正视而入手下手应用的第 4 版则有十年了。
但是跟着 PHP 5 的出生,和 2008 年 PHP 4 不再被官方保护,大部分的主机商也已安排了 PHP 5 作为次要履行情况;固然现阶段 PHP 5 仍是会让 PHP 4 的法式可以履行,然而开辟者的不雅念假如没有一同跟着更新,那才是灾害的入手下手。
言语的设计原本就没举措一入手下手思索周详, Java 如斯, Python 也是如斯,它们在严重改版时,部分语法及相干的中心组件上原本就会有所改动。而开辟者假如没有合时去懂得在新版本上的利用差别,那末跟埋怨一把生锈的斧头很难砍倒一棵大树有甚么不同?
Unicode
Unicode 在比来这几年才入手下手被台湾的开辟者所正视,在那之前 BIG5 也许是他们的噩梦吧。
先不论 PHP ,咱们来看一下其余言语怎样处置 Unicode 。
Ruby: 就我深刻的懂得, Ruby 自己也不完全增援处置 Unicode ,但仍是可以处置。
Python: 在 2.x 版也是透过 unicode 种别来处置,在 3.0 中心有直接增援。
那末 PHP 呢?
切实其实 PHP 自己没有很便利的办法来处置 Unicode ,然而不暗示它不克不及用其他办法来处置:
mbstring: 多位元组的字串处置
iconv: 转换编码
PHP 6 今后则是直接把 unicode 放到中心函式e。
固然 PHP 后天的限制,会让它在处置 Unicode 字串上没法像 Ruby 和 Python 那末直觉;但不暗示咱们不克不及透过其他办法将它封装起来,便利后续的开辟。
在材料库上的 Unicode 成绩也是如斯, PHP 自己不处置这些,它只是透过 client 来获得材料库回传的材料,这在每一个言语对材料库的实作都是一样的。
Magic Quotes
一入手下手 PHP 有 magic_quotes 只是为了便利处置要塞入材料库的字串,由于事先 PHP 开辟者关于法式与材料库之沟通十分不熟习。
但是,这只是材料分层处置的不雅念。
现实上咱们基本不应对吸收上去的材料做假定,假如输出的材料是「许功盖 (BIG5) 」,就让它坚持「许功盖 (BIG5) 」;比及要存入材料库时,再让真实的材料操作函数 (或物件) 去向理它 (像是 PDO::quote ) ,而不是再用 addslashes() 或 stripslashes() 这类别扭的体例来存取材料库。
而从材料库获得材料时也是一样,由于咱们用准确的办法塞入,所以它也会回传咱们准确的材料,这在一切言语都是一样的!
所今后来的 PHP 5.3 版本就将 magic_quotes 放弃, PHP 6 则直接不增援。
而在这之前的版本所开辟出来的法式,也都是该以 magic_quotes 坚持封闭的形态来开辟;碰到不肯定 magic_quotes 是不是开启时,可以参考官方手册的建议来作废它对法式的影响。
SQL Injection
某网友说:「填‘; shutdown — 就可以打挂一票网站…,九成能够都是 PHP 写的」,又说「我晓得 SQL (Injection) 是跨言语的成绩,然而 PHP 就是恰恰出格轻易写出有洞的法式 像如许 “SELECT * FROM User WHERE id = $user_id” 然后就毁了。」
我团体倒以为,有九成以上会有 SQL Injection 成绩的,多是传统的 ASP 网站。 (这边 ASP 只是举例,不暗示真的九成以上都是如许;现实上没有援用一个准确的统计数字,这都只是嘴炮罢了,请塬谅我用这么粗鄙的字眼)
<p>只要实现最基本的功能就可以了 就是可以添加留言 然后可以显示留言,然后加入管理功能 当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标, 环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。 刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。 有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。 对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。 使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的 我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。 因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax 没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。 当然这种网站的会员费就几十块钱。 爱上php,他也会爱上你。 爱上php,他也会爱上你。 再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。 因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax 作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。 当然这种网站的会员费就几十块钱。 php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。 当然这种网站的会员费就几十块钱。 其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
页:
[1]