PHP怎样快速入门(基础足够扎实)

syeerzy 2010-03-03 02:59:32
完全没搞过PHP,只是这么多年偶尔会在某些书籍文章论坛看见别人贴的代码,具体并未深入.

但是本人基础绝对是扎实足够的 (20年以上代码编程经验,其中超过十年数据库和网站开发经验,所以跟Web相关的通用技术,如缓存\算法\HTML\JS\CSS\包括HTTP模型TCP实现这些都绝不会是问题...)

我问的是关于"纯"PHP的问题, 我觉得语法也应该没什么问题...但是我想节约时间,请各位熟悉的人给推荐些比较经典的介绍PHP的网站或者书籍,电子版也好. 中英文不限.

主要是PHP执行机理,内部运行时核心问题, 一些需要注意的细节问题常见问题和高级技巧之类的.希望各位有点什么好的书籍介绍,或者好的经验.




有一支PHP的队伍可能近期会落我手里需要我带一下....我本人是不搞PHP的也没打算搞...但是完全不了解这项技术又似乎说不过去,我大概不会参与代码,但是如果有什么比较底层点的核心问题我估计我跑不掉....囧...所以想短期突击一下...如果有那种PHP跟其他Web技术整天对比的书最好了....


谢谢!
...全文
2973 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
jd_zhangfeng 2010-03-04
  • 打赏
  • 举报
回复
我是来膜拜20年的大人的
littlebirds 2010-03-04
  • 打赏
  • 举报
回复
进来膜拜下牛人!!!
餅餅 2010-03-04
  • 打赏
  • 举报
回复
楼主这种层次的应该尝试搭个MVC框架先 其中穿插着学习下php
babysc1 2010-03-04
  • 打赏
  • 举报
回复
看圣经 手册 多看多做 其实语言都是融汇贯通的~
骄傲青蛙 2010-03-04
  • 打赏
  • 举报
回复
php 就如其名 Personal Home Page 这就是它的局限性
syeerzy 2010-03-04
  • 打赏
  • 举报
回复
计划赶不上变化, 又无端浪费时间了,呵呵. 结贴
li36669957 2010-03-04
  • 打赏
  • 举报
回复
我要来膜拜下20年的牛B人物,顺便接点分。
Abin-2008 2010-03-04
  • 打赏
  • 举报
回复
300分啊....
你只要多看看c語言就懂了....
  • 打赏
  • 举报
回复
引用 29 楼 liuahuilele 的回复:
纯属支持              意外发现20年的大人物  敬仰


菜鸟的偶竟然抢到了沙发,相形见绌啊~
liuahuilele 2010-03-04
  • 打赏
  • 举报
回复
纯属支持 意外发现20年的大人物 敬仰
  • 打赏
  • 举报
回复
引用 20 楼 coolesting 的回复:
to 18F

如果你想深入一点, 建议你到linux平台上研究php, 上面有很多php的资源, 包括我提到的一些没编译php源码, linux平台较多人搞php扩展(国外), 都是自己写了, 编译运行, 和发布的。

至于书籍,我说的圣经都是相对于入门级来说,有实践经验的程序员,可直接看手册就OK。 php出道那么多年, 当然会有较权威的书籍, 但在国内基本上找不到。 因为php也是国内近这几年才兴起, 书籍也是新引进不久(在一两年前,国内的大学甚至找不到有开php的课程,老师也少, 老鸟们基本是自学)。

这资源可能对你有用(http://lxr.php.net/)

~~ 不过虽然如此,不过大部分HR在招聘的时候竟然说你是不是学PHP专业的 ,~ 无话可说了。
foolbirdflyfirst 2010-03-04
  • 打赏
  • 举报
回复
期待LZ把底层代码的研究心得写出来。
我等后辈甘之如饴。

php的执行步骤基本有4步
1.Scanning(代码分解成无数个token,词法分析)
2.Parsing(合并token成表达式)
3.Compilation(将表达式翻译成opcode)
4.Execution(执行opcode)

chl343000406 2010-03-04
  • 打赏
  • 举报
回复
进来膜拜牛人~~~~
syeerzy 2010-03-04
  • 打赏
  • 举报
回复
早上看了一个上午, 果然那个"圣经"是个入门书...囧...又简单翻了下Zend的源码. 以下是一点点不成熟的看法,如果有犯什么低级错误,请大家斧正.


PHP其实就是一个拥有类ASP的结合方式, 使用C语法的, 去除了部分语法特性的Python.


代码风格种类太灵活(多种嵌入html的语法和太多种功能一样的注释方式,包括很多简单运算如逻辑运算都有多种等价写法. echo什么的也有多种完全等价写法,相同功能多种写法对于写个人程序来说是个方便,但是对大队伍开发很不利哦, 大约跟PHP的 Personal Home Page的原始定位有关)不利于大团队中对他人代码的阅读(实际执行中需要建立强制性的规范文档来保证可读性?)

如果要面向对象则每个类使用一个文件又会造成每个子类都一直 require父类,会否造成服务器在 I/O 上面的负担? 如果所有类合并一个文件里,则在以后require 或者include 这个文件的时候多执行了很多不必要的包含. 没有办法对父类的内容进行语法上的隐藏(让子类无法调用),比如父类和子类由不同的人维护,比如父类是由管框架公共代码的人维护,而子类是二次开发的人维护, 父类的程序员需要对自己写的类进行重构的过程中, 一些只给自己使用的函数,也许只是暂时的,过段时间这些代码就可以删除了(有更合理和完整的实现), 但是他无法知道子类要是使用了这些代码....那问题就可能非常严重了...

while($i < 100000)
{
echo $i++ ;
}
对于这样的语句块, echo语句是被解释了 10万次??? 还是如 IL 般只在第一次时执行, 而在循环第2次时直接使用第一次的 本地码 ?

看见库里有对dBase这种古老东西的支持,勾起十几年前的回忆...现在该极少需要这种东西吧?何况其实以ODBC操作dBase应该也是没问题的,何须保留这种对古老技术的专门支持.看来使用广泛也有缺点啊, 就是重构时包袱太大了. 跟 Mac 平台Cocoa里的字符串一样....

可以使用Perl的样式比对,这是个好东西. 正则表达式的支持略显单薄,但是普通应用足够.


我简单跟踪了一下源码, 在源码的Zend文件夹里面的zend_language_parser.c 应该是个比较值得研究的东西, 5000多行代码,主要用于把php代码变成C语言代码.这里可以在语法层面看见很多新东西,时间关系还没看完,先继续看着, 下午晚些时候再来结贴并对这个东西做个简单的观后感吧,呵呵.
骄傲青蛙 2010-03-03
  • 打赏
  • 举报
回复
to 18F

如果你想深入一点, 建议你到linux平台上研究php, 上面有很多php的资源, 包括我提到的一些没编译php源码, linux平台较多人搞php扩展(国外), 都是自己写了, 编译运行, 和发布的。

至于书籍,我说的圣经都是相对于入门级来说,有实践经验的程序员,可直接看手册就OK。 php出道那么多年, 当然会有较权威的书籍, 但在国内基本上找不到。 因为php也是国内近这几年才兴起, 书籍也是新引进不久(在一两年前,国内的大学甚至找不到有开php的课程,老师也少, 老鸟们基本是自学)。

这资源可能对你有用(http://lxr.php.net/)
helloyou0 2010-03-03
  • 打赏
  • 举报
回复
引用 18 楼 syeerzy 的回复:
回复16楼,你的回答非常有意义.

"PHP只是用C写WEB的一种方式, 在上个世纪那些前辈开始用C写WEB的时代, 发现很累赘, 所以发明了PHP"
对于这些正是我希望知道的,我就需要的是关于 系统到底做了什么事情,比如 echo 的时候到底是那些C语句.... 看 解释器 的源码,这应该是个不错的主意.  但是PHP到现在也很多年了, 没有什么专门讲解这些的书籍么?

现在我所知道的是PHP的所谓"高效率"并不是一句语句执行多块,而是远比ASP.NET和JSP这些重量级东西短得多的执行路径. 也就是平均一句代码对应的低级语句少得多. 但是怎么个少法之类的,确实如你说的, 看解释器源码肯定能看出来. 恩,  当然如果有专门介绍的书先感性认识后再看会好得多,起码省时间多.

你说的 "PHP圣经" 我不知道这本书,不过敢起这样名字的, 应该有些料,我先找来看看再说.


最后:解释器是开源的 ?  PHP 对应的C (PHP没编译的C源码) 是一个中间产物吗???类似 C#对应的IL ,Java对应的 bytecode ?

ok,谢谢, 我明白了, 16楼给100分,剩下的200分等明天没其他人的更有价值的回答的话,200分就平均分给顶的人好了, 谢谢各位~~


楼上青蛙讲得很好,鼓掌...

先说书吧,还真没什么好书讲这个的
手册上这部分(zend core就是php的核心代码)很不完整:
http://www.php.net/manual/en/internals2.php
(这就是所谓的php手册,你也能看到其他语法,扩展的文档)

php就是由zend core及扩展模块组成的,我们这些写代码的平时就是主要用扩展里的函数/对象等,这些你不写代码不用多研究,反正你手下会有高级程序员的

解释器是开源的,绝大部分扩展也是开源的,
php是c直接解释运行,没有中间代码,如果安装了apc,会有缓存的opcode,我觉得和bytecode也不太一样吧

既然你是做过C#和java的,框架里肯定是zend framework最对你胃口,其它的框架不用考虑了...

楼上说的discuz什么的千万别看,看了你就反对用php了...:)

运行上,php是作为apache的一个模块,就是说如果apache碰到一个php文件,就调用php模块解释该文件后运行输出,
就是说php没有jre那样的运行环境,仅作为apache的一个线程运行,
一个后果是每个php文件运行是都是重新创建所有需要的对象/资源/变量,并在该文件执行结束后全部销毁.(听起来很恐怖?)



最后,再做广告,欢迎加入我们的google group, 我们需要你这样的高级人才:)
btw,楼上的青蛙也在我们group里

==========================================================
欢迎加入以google wave为交流工具的PHP讨论组: phpwave@googlegroups.com
加入办法:
1。 从你的gmail可以直接发信到 phpwave+subscribe@googlegroups.com
2。 PM你的邮箱给我,我直接加入
3。 到http://groups.google.com/group/phpwave/subscribe?note=1申请
如果该网址不能访问请尝试 https://groups.google.com/group/phpwave/subscribe?note=1
或 http://groups.google.co.uk/group/phpwave/subscribe?note=1 ...(或换其它国家域名)
syeerzy 2010-03-03
  • 打赏
  • 举报
回复
回复16楼,你的回答非常有意义.

"PHP只是用C写WEB的一种方式, 在上个世纪那些前辈开始用C写WEB的时代, 发现很累赘, 所以发明了PHP"
对于这些正是我希望知道的,我就需要的是关于 系统到底做了什么事情,比如 echo 的时候到底是那些C语句.... 看 解释器 的源码,这应该是个不错的主意. 但是PHP到现在也很多年了, 没有什么专门讲解这些的书籍么?

现在我所知道的是PHP的所谓"高效率"并不是一句语句执行多块,而是远比ASP.NET和JSP这些重量级东西短得多的执行路径. 也就是平均一句代码对应的低级语句少得多. 但是怎么个少法之类的,确实如你说的, 看解释器源码肯定能看出来. 恩, 当然如果有专门介绍的书先感性认识后再看会好得多,起码省时间多.

你说的 "PHP圣经" 我不知道这本书,不过敢起这样名字的, 应该有些料,我先找来看看再说.


最后:解释器是开源的 ? PHP 对应的C (PHP没编译的C源码) 是一个中间产物吗???类似 C#对应的IL ,Java对应的 bytecode ?

ok,谢谢, 我明白了, 16楼给100分,剩下的200分等明天没其他人的更有价值的回答的话,200分就平均分给顶的人好了, 谢谢各位~~
骄傲青蛙 2010-03-03
  • 打赏
  • 举报
回复
另外补充一下, PHP的框架只是为了提高开发效率, 但没必能帮楼主弄明白PHP核心问题, 低层原理。 也就是说看PHP项目的源码没达到你想要效果, 只能看C源码
骄傲青蛙 2010-03-03
  • 打赏
  • 举报
回复
1. 我赞同三楼的答案, 其它的比较勉强, 从楼主的经验来说是S级别了, 以我之见, 目前中国市场内没有一本书(包括PHP圣经)能满足楼主的胃口, 及所谈到的“PHP执行机理,内部运行时核心问题”, 解决这问题的关键是, 你必须直接看PHP没编译的C源码和弄明白PHP解释器, 如何先解释脚本, 再怎么执行脚本, 而这些资料的提供者最权威的只有官方网(www.php.net)。

2. 如果你明白C的原理, 基本就懂了PHP底层原理, PHP只是用C写WEB的一种方式, 在上个世纪那些前辈开始用C写WEB的时代, 发现很累赘, 所以发明了PHP, 从而降低了C写WEB的门槛, 提高了开发效率。

3. 谈到PHP是弱类型的一种, 它的变量可以随便存放int,float,bool,string类型, 我猜它就是C的共同体,换句话说PHP就是用C写WEB的一个框架


后面两点都是强调红色字部份, 至于语法直接看中国版的w3c school基本不是问题, 个别函数应用和PHP会话,安全机制之类看官方手册, 还有linux,mysql,apache相关的知识你也跑不掉。

如果楼主弄明白了粗体字部份一定要多点和我交流, 因为这个问题也是我在PHP中的一个坎 - -!
josie0106 2010-03-03
  • 打赏
  • 举报
回复
http://www.php100.com不错
加载更多回复(14)

21,886

社区成员

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

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