+ -
当前位置:首页 → 问答吧 → 三年拓荒之路(送给PHP初学者)

三年拓荒之路(送给PHP初学者)

时间:2007-08-05

来源:互联网

三年拓荒之路(谨以此篇送给刚踏入PHP的初学者)

呵呵,高手不用往下看了,因为我怕你们笑话,我水平很菜,但是刚才看到一个贴子http://www.phpchina.com/33305/viewspace_11774.html,居然说到学PHP要进培训班,所以忍不住想发几句牢骚~

我是04年下半年开始接触PHP的,之前一直在搞ASP,那会搞ASP的大多转去搞.net了,呵呵,我想可能我是一个异类,但没办法,刚跳槽,公司也刚好转变技术方向,我也跟着转了,原来烧的是微软的香,改烧Zend的香了哈~

刚接触PHP那阵,我和大多数人一样,上网查资料,翻书(借的),虽说书非借不能读,但是我借了一样读不下,看着那厚厚的一本,我心里就直打鼓,差点还产生了恐惧阴影。
网上的PHP长篇大论的一大堆,看得我头晕眼花,那会04年流行啥,OOP,论坛上就两样东西最火,一个是ASP与PHP之争(现在回过头去看,当时的PHP4真的跟ASP没啥两样,因为PHP4真正意义上并不支持OOP,直到PHP5出了之后才有改观,至于ASP,在出了PHP5后,就给甩到西班牙去了),一个就是OOP啦,全都在那吵呀争呀,我在网上逛了三四天,直正的收获不大

唉,还是得用老办法

我的老办法是什么?嘿嘿,以前学ASP时用的办法,直接下载一个最简单的留言本(越简单越好),然后看代码,一行一行的看,一个函数一个函数地查,当时那是满篇都陌生呀,除了能看懂一个if和for,其它基本上两眼一摸黑,五行代码我有四行需要找Google,还好那个留言本代码不多,也就两个文件,一个配置文件,一个页面文件,但也就是这两个最基本的文件,让我知道了PHP是怎么读取外部数据,怎么执行SQL,怎么输出。这就够了,WEB其实最基础的也就是这三样东西。

至于什么OOP,当时才入门,公司里安排下来的任务,我也就捡一些企业建站简单的来做,最多的无非就是用函数,至于OOP,那时哪像这么多呀,函数已经够我用的啦,至于什么MVC呀的模式呀,插件式的体系呀,跟我统统没关系,饭得一口一口吃,贪多嚼不烂的道理我还是懂滴~!

其实ASP转到PHP,只是工具转变了,最重要的还是个人的思维方式,也就是思路,也就是业务需求转变为设计实现的这么一个思维过程,简单的说,你会使用冒泡法和你会使用一些现成的类库是两回事,冒泡法讲的是一种思维,而现成的类库,只是运用工具,你画笔用得很帅未必代表你是一名好的画家,就这个比喻

如果你平时只是用增删除的功能,你体会不到这些,我这什么讲着讲着,又搞到解题思路这一块来了呢?因为解题思路很重要,不管ASP或是PHP,再或者是JSP之类的,他们都只是一种工具,而你的解题思路才是最关键的。

一直到06年初,跳槽,转了家公司,开始搞大项目时,我对OOP的需求姗姗来迟。

你只有觉得函数不够用了,想找一个比函数这东西更牛X的来代替时,你才知道OOP是在什么样的情况应运而生的;OOP是啥,面向对像,也就是调用类库,而什么是类呢?类就是一堆被封装起来的函数(在类里面管这叫方法,JAVA的书里是这么说的,不好意思,我学得很杂,唯一看过的书就是JAVA,但偏偏没搞过实际的项目),而成员变量,是将方法串联在一起的一种手段(当然了,也有人直接调用函数返回值的)
举个例子:判断大小
class big_or_small()//成员变量,将方法串联在一起
{
var $a;
var $b;
var $c;
  function show_big()
  {
     if ($this->a > $this -> b)
    {
       $this->c = $this->a;
    }
    else
    {
        $this->c=$this->b;
    }

    }
}
$bos = new big_or_small();
$bos->a=1;
$bos->a=2;
$bos->show_big();
echo $bos->a;

class big_or_small()//直接调用函数返回值
{

  function show_big($a,$b)
  {
     if ($a > $b)
    {
      $c=$a;
    }
    else
    {
        $c= $b;
    }
     return $c;

    }
}
$bos = new big_or_small();
echo $bos->show_big(1,2);

这两种,我刚开始时,用的是后者,为啥?简单,好懂呗,可是后来我懂懂转用第一种,为啥走弓背不走弓弦呢,呵呵,刚开始我确实是因为装逼,可是后来,当你要调用$c值时,后者要执行多个show_big方法,而采取前者的话,你只需要调用一个成员变量。也有人可能觉得我罗嗦,“我可以将方法返回的值赋给某个变量呀,笨”,有人可能会这么说了,不要紧,我也只是说说而已,你可以不当一回事。

至于MVC,我是在用OOP时,开始使用MVC的,呵呵,说MVC之前,我先讲点小事。

MVC的实现,网上有人说smarty好,有人说phplib里面提供的好,还有好多好多,选哪个呢,呵呵,其实好多工具,大家在用的时候可能都会在想一个标准的问题,怎么都没有一个标准的来选?呵呵,我以前也有这样的想法,.net或是JAVA都有标准类库调用,选都不用选,而我们,为什么实现一样东西会有一堆乱七八糟的东西跳出来让我们选择?呵呵,这就是开源和商业软件的区别了,用商业软件,你是乘客,车由司机开,用开源,我们自已是司机,方向自已决定,就这个道理,而且呢,在选工具类库时,不要想太多,选最多人用的就行了,因为用的人多,到时碰上问题好问人呀,哈哈哈。

至于类库方面,更深入的时候,我开始自已写一些类库,呵呵,不过大多都是业务逻辑之类的,开始慢慢深入到类里面关于继承或是接口之类的东西。

继承是什么?我举个例子,我定义一个税票打印类print_ticket,在定义时我指定了他继承FPDF类,那么这个类就会得到FPDF所有类的成员变量与方法,并且我还可以再自定义一些成员变量与方法在里面,如打印页面距呀,税票格式呀之类的。到时直接用print_ticket类就行了,不用再管FPDF类了,如果不用继承的方法,你就得在print_ticket类的方法里面定义公用类fpdf,但是这样很烦。

记住,贪多嚼不烂~!最流行的未必最适合你

至于AJAX,呵呵,虽然红了快两年了,但是一直没碰,不过业务需要,接触了一阵子,很兴奋,而来WEB可以这样做。

至于现在红透半边天的框架,呵呵,我想是出了ZF才有这么大的动静的,看了几个引导装载的文件,没深入。

后面这两段闲话本来不想扯的,因为他的确是闲话,但是我想告诉大家,工具只是工具,解题思路才是正道,PHP招聘上的要求,都是人事经理没事干瞎折腾出来的,现实中如果只是网建项目,根本不需要这么多,会读取+执行SQL+输出就行了,再搞点增删改,呵呵,行了,不要对自已没信心,PHP入门,其实很简单,至于熟练或是精通,也就那么一回事,跟倒油翁一样的道理。

有空赶潮流,还不如自已整几个PHP扩展库来玩玩~

[ 本帖最后由 顺顺利利 于 2007-8-5 18:37 编辑 ]

作者: 顺顺利利   发布时间: 2007-08-05

顶了:)

作者: sure5201314   发布时间: 2007-08-05

顶~~~~~~~~~~

作者: geniuscynic   发布时间: 2007-08-05

我总是后悔自己在前两年没有接触PHP,其实在那个时候我就看过PHP的报道,也许这就是没有把握的机会

作者: wenthuang   发布时间: 2007-08-05

学习互联网是从半年前开始的
接触PHP是一个月前
真正开始学是7月份

作者: njuptsoz   发布时间: 2007-08-05

有潜力

作者: wukeyuan   发布时间: 2007-08-05

呵呵,两年前因为看了一个傻B写的书,他说PHP是一个开源项目,技术支持和更新上比不上ASP和JSP之类的话,当时,我还是一个门外汉,所以,就听了他的话,选了ASP.
学PHP是四个月以前,现在也只会一些简单的应用,因为我做的网站只要会一些简单的应用就够用了,虽然如此,我还是在抓紧学面向对象编程.

作者: yong631   发布时间: 2007-08-06

支持LZ

作者: fengyun   发布时间: 2007-08-06

学PHP就为考个证,谁知道学校的IT认证中心只有关于PHP+MYSQL的网站开发工程师认证,没有办法呀,考吧!所以就成现在所谓的PHPer了!

作者: yiqing666   发布时间: 2007-08-07

支持下,多写写

作者: skyjhz   发布时间: 2007-08-08

现实中如果只是网建项目,根本不需要这么多,会读取+执行SQL+输出就行了,再搞点增删改
那可差远了哦.

作者: crane   发布时间: 2007-08-08

引用:
原帖由 crane 于 2007-8-8 16:12 发表
现实中如果只是网建项目,根本不需要这么多,会读取+执行SQL+输出就行了,再搞点增删改
那可差远了哦.
呵呵~再加点RSS?
接单的网建80%是企业网站,哪有这么多需求~
至于大的网建,呵呵~当然没法比啦~

作者: 顺顺利利   发布时间: 2007-08-08

不错的说

作者: softly   发布时间: 2007-08-14

看了这文章   收获好多 对自己有点信心了

作者: loong_xin   发布时间: 2007-08-15

路过 ...... 顶

作者: phpahz   发布时间: 2007-08-15

好.谢谢分享.:lol

作者: 月黑风高   发布时间: 2007-08-15

支持~

作者: laopi   发布时间: 2007-08-21

我顶你个肺!!!
楼主 说的 句句实话

作者: zfeng   发布时间: 2007-08-21

有句话说的好,适合的才是最好的
别想着别人学php你也学
关键看你学的动机是什么,有兴趣没,学了有什么用处!

作者: jiangwb1   发布时间: 2007-08-22

要支持一下!

作者: londit.cn   发布时间: 2007-08-28

路过  同感

作者: ylhp   发布时间: 2007-09-01

本来不想吱声了.看楼主也太实在了.说两句吧.网建这块真的会增删改就搞定了.可要做大项目还要深入OO啊

作者: hengzhi   发布时间: 2007-09-13

作者: phpBird   发布时间: 2007-09-19

真是实话呀!!!!

作者: lin_chaoqi   发布时间: 2007-09-20

看后决心顶沉你!

作者: czly   发布时间: 2007-09-26

楼主为什么不用三元运算符呢?这样子代码不是很简洁吗,另外BS你举这么简单的例子也写错误的语法(定义类是不用带括号的,C++,java,C#都没有这语法),这样对初学者产生的负面影响会很大。
class big_or_small //成员变量,将方法串联在一起
{
        var $a;
        var $b;
        function show_big() {
                return $this->a > $this->b ? $this->a : $this->b;
        }
}
$bos = new big_or_small();
$bos->a = 10;
$bos->b = 20;
echo $bos->show_big();:( :( :( :(

作者: signalon   发布时间: 2007-09-27

另外OO最基本的说法是:封装、继承、多态(虽然现在需要高内聚,低耦合的代码,组合优先继承),但你举的这例子里完全违背了封装的原则。php我也是刚开始学习,但楼主做为过来人,希望发帖时有一种严谨的态度:) :)

作者: signalon   发布时间: 2007-09-27

鼓励一下啊。
:)

作者: luzhou   发布时间: 2007-09-28

引用:
原帖由 signalon 于 2007-9-27 14:35 发表
楼主为什么不用三元运算符呢?这样子代码不是很简洁吗,另外BS你举这么简单的例子也写错误的语法(定义类是不用带括号的,C++,java,C#都没有这语法),这样对初学者产生的负面影响会很大。
class big_or_smal ...
呵呵,不好意思,献丑了
我那个也没事先咋想的,就写着写着,例子随手写写而已~
你说得很对~

作者: 顺顺利利   发布时间: 2007-09-28

引用:
原帖由 hengzhi 于 2007-9-13 15:45 发表
本来不想吱声了.看楼主也太实在了.说两句吧.网建这块真的会增删改就搞定了.可要做大项目还要深入OO啊
呵呵,是呀~
不光是大项目,还有产品开发,每一个类的调用或是变量的声明,都一定要有章有法的~

作者: 顺顺利利   发布时间: 2007-09-28

呵呵・・我在接触PHP之前自学ASP一段时间。。 呵呵 感觉那个不是太爽.。:lol

作者: 疯子-斯   发布时间: 2007-09-28

up

作者: lele729   发布时间: 2007-09-28

我也是刚开始学习 if

作者: 小齐   发布时间: 2007-09-30

三年才拓完荒,可见坚持很重要啊。
:)

作者: luzhou   发布时间: 2007-10-01

写的太好了可代码有错误!

作者: 自由活动   发布时间: 2007-10-16

我认识一个北京的朋友 当初我学asp的时候 他也是和我说学asp你搞定一个留言本就可以了:P

楼主说的话还是很有道理的  我做个人接了2年多中小型网建的单子 楼主说的有些地方让我颇有同感 当然 还要补充一下 新手入门以后 除了最基本的逻辑实现 还要特别重视安全问题 也就是编程的严谨 对变量 传递值的控制是新手最容易忽视的问题

请楼主把例子的错误改正下- -!

作者: likai321   发布时间: 2007-10-16

不错,支持一下

作者: wyc6316330   发布时间: 2007-10-19

持之以恒是做事做人的态度,也是学好PHP的前提条件之一。
:)

作者: luzhou   发布时间: 2007-10-25

我写的PHP还没一个类,虽然用的来。

主要我还没有团队开发的需求,所以没必要使用类。其实把一些往简单的地方想,就OK了。

作者: byqy   发布时间: 2007-10-31

你画笔用得很帅未必代表你是一名好的画家

楼主太幽默了!!

为啥走弓背不走弓弦呢,呵呵,刚开始我确实是因为装逼

作者: leegangk   发布时间: 2007-11-01

学习了,有机会向你请教。。。。

作者: leesunny   发布时间: 2007-11-02

本人也是初学者 受益颇多 支持!!

作者: g19860502   发布时间: 2007-11-02

支持lz ,

作者: lc0633   发布时间: 2007-11-04

很好 谢谢  学习了 正要学习PHP 谢谢鼓励哦

作者: yumingyang   发布时间: 2007-11-05

一步一个脚印好~~~

作者: 开心一笑   发布时间: 2007-11-06

学习了 虽然不是太懂。。。。

我是新手,原谅!

作者: xbonline   发布时间: 2007-11-06

支持一下,学习学习

作者: lovefun   发布时间: 2007-11-07

唉,第一次有机会接触PHP是在2003年,那个时候只有人会一点ASP,但是会的那个人只教了我一个星期就调走了,之后就荒废了,还好自己吧ACCESS的基础给啃了,下载某些看起来还比较简单一点
后悔啊后悔

作者: kin29   发布时间: 2007-11-12

受益匪浅,多多指教

作者: tc318   发布时间: 2007-12-06

支持你了,初学者,收益不少

作者: alcupt   发布时间: 2007-12-09

经典语录:
PHP招聘上的要求,都是人事经理没事干瞎折腾出来的。
至于熟练或是精通,也就那么一回事,跟倒油翁一样的道理。
不管ASP或是PHP,再或者是JSP之类的,他们都只是一种工具,而你的解题思路才是最关键的。

作者: flynetcn   发布时间: 2007-12-26

楼主很强,有很强的动手能力。。

目前对自己迷惘中,不知道该怎么走。

作者: leejianjun   发布时间: 2007-12-27

还真是实话实说

作者: jeccy   发布时间: 2008-01-03

顶一下,写得不错。

作者: jackywdx   发布时间: 2008-01-04

支持,!!!!

很鼓励啊,呵呵

作者: kyard   发布时间: 2008-01-04

我要下决心干PHP~~

作者: ksina   发布时间: 2008-01-05

获益了,谢了

作者: 小狼大灰   发布时间: 2008-01-09

引用:
原帖由 hengzhi 于 2007-9-13 15:45 发表
本来不想吱声了.看楼主也太实在了.说两句吧.网建这块真的会增删改就搞定了.可要做大项目还要深入OO啊
现在郁闷的就是没有深入oo 只能做网建这种增删改的活,累死人薪水又低

作者: hu_bird   发布时间: 2008-01-09

作者: lycoo   发布时间: 2008-01-14

不错

作者: 五五互联   发布时间: 2008-01-15

支持

作者: ct_174880859   发布时间: 2008-01-17

楼主适合当老师而不是程序员

作者: gamaray   发布时间: 2008-02-02

好帖子 啊

作者: 46612206   发布时间: 2008-02-03

支持拉

作者: php?   发布时间: 2008-02-04

LZ棒棒的,真希望多些这种经验贴啊

作者: Rainstorm   发布时间: 2008-02-05

呵呵看了受益匪浅

作者: zhaoyun4122   发布时间: 2008-02-07

很实用谢谢!我才学PHP才一个月.我还有个问题想请教 PHP中怎么把系统的注册和论坛的注册整合到一起啊!也就是系统注册了论坛就注册了系统登录了论坛也登录了!谢谢

作者: tcphp   发布时间: 2008-02-29

作者: dzjzmj   发布时间: 2008-03-01

我要开个培训班肯定赚疯了,哈哈哈

看过贴子的人一个十块,哈哈哈

大家不要跑,先把钱留下~打劫~!!

作者: 顺顺利利   发布时间: 2008-03-02

借鉴!!!

作者: ilinux   发布时间: 2008-03-02

支持支持,讲的就是正道啊

作者: zl8762385   发布时间: 2008-03-16

支持LZ

作者: snlixing   发布时间: 2008-03-16

作者: luzhou   发布时间: 2008-03-16

受教了
要么怎么叫前辈呢

去培训 一是想系统学习下 二是给自己点信心 三是给你一条走往PHP的路
我是选择去培训了
能学到东西 基础的
但是  请参考楼主文章  摸清自己的情况 做选择

我更希望的是在学习中做项目 最好是商业项目 培训机构接来 安排给学员 边学习 边开发

作者: 仰望星空的狼   发布时间: 2008-03-26

支持一下,学PHP完全为了混口饭吃。

作者: kts2tt   发布时间: 2008-03-26

楼主说的很有道里!我顶一个!

作者: tiantang_88   发布时间: 2008-03-27

哎  我都不知道说什么好

作者: 32740208   发布时间: 2008-03-27

深有感触

作者: 清风秋月   发布时间: 2008-03-27

实话实说,郁闷了小半个月了,看了这篇文章,啥都有了。呵呵

作者: jeccy   发布时间: 2008-04-05

引用:
原帖由 顺顺利利 于 2007-9-28 17:45 发表

呵呵,不好意思,献丑了
我那个也没事先咋想的,就写着写着,例子随手写写而已~
你说得很对~
那还不赶紧搞个非‘随手写写而已’的贴上去?

作者: YangFree   发布时间: 2008-04-06

顶下

作者: lanxuexing   发布时间: 2008-04-10

好!

作者: dx_andy   发布时间: 2008-04-12

长见识了哦!

作者: fanglor   发布时间: 2008-04-30

多谢你,写出你的看法

作者: 36huangjianhua   发布时间: 2008-05-02

受益匪浅啊

作者: licrazy   发布时间: 2008-05-03

受益匪浅啊,好文章

作者: 105644107   发布时间: 2008-05-03

倒油翁..
回头看来路 也就是那样 高手也是练出来的

作者: 仰望星空的狼   发布时间: 2008-05-05

学校里就是学ASP的    现在在公司实习  嘿嘿 接触了PHP   努力学习

作者: 含泪草   发布时间: 2008-05-14

不错,支持楼主,虽然自己刚开始学习php才一个月,不过学过.net的一年了,对面向对象和mvc还是比较熟悉,对php能实现面向对象,是在努力学习中,因为感觉没用面向对象来写,蛮痛苦的

作者: lanshuibingdao   发布时间: 2008-05-15

情况一样,继续努力中

作者: wydycrtd   发布时间: 2008-05-16

好文 顶顶 我是感同身受

作者: xxxxxxv   发布时间: 2008-05-16

迷惘中

作者: chxugao   发布时间: 2008-05-17

学习了,有点感触,学习在乎一种思路~

作者: korui   发布时间: 2008-05-21

谢谢楼主,真是受益匪浅!相见恨晚!!

作者: qiaogqiang   发布时间: 2008-05-21

哈哈有收益哦

作者: 烟堆铜   发布时间: 2008-05-24

引用:
原帖由 lanshuibingdao 于 2008-5-15 13:35 发表
不错,支持楼主,虽然自己刚开始学习php才一个月,不过学过.net的一年了,对面向对象和mvc还是比较熟悉,对php能实现面向对象,是在努力学习中,因为感觉没用面向对象来写,蛮痛苦的
其实国人用DONET,给我的感觉就好像是用马拖着法拉力走一样的~
明明提供了很强大的类库或是工具,他只需要一拧那钥匙就行了
新的工具,必须要有新的使用方法,可是他偏不,仍是按照老方法来搞~
马拖法拉力,嘿嘿,我觉得这个比喻太合适了~

作者: 顺顺利利   发布时间: 2008-06-16

我得努力了

作者: 46612206   发布时间: 2008-06-17

为什么要参加PHP培训?
http://kuaiyigang.com/post/240.htm
1、节省时间
2、掌握更好的学习方法
3、早日进入实战
4、学员之间互帮互助
5、学校负责推荐工作
6、学校提供后续服务

有想学PHP的,可以报名前来试听1-3次,满意后再交费继续学习。
报名电话:010-81998356 52717923 52717924 QQ:2177688

作者: 蒯义刚(星模PHP培训学校LAMP讲师)   发布时间: 2009-02-06