三年拓荒之路(送给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-08-05
作者: sure5201314 发布时间: 2007-08-05
作者: geniuscynic 发布时间: 2007-08-05
作者: wenthuang 发布时间: 2007-08-05
接触PHP是一个月前
真正开始学是7月份
作者: njuptsoz 发布时间: 2007-08-05
作者: wukeyuan 发布时间: 2007-08-05
学PHP是四个月以前,现在也只会一些简单的应用,因为我做的网站只要会一些简单的应用就够用了,虽然如此,我还是在抓紧学面向对象编程.
作者: yong631 发布时间: 2007-08-06
作者: fengyun 发布时间: 2007-08-06
作者: yiqing666 发布时间: 2007-08-07
作者: skyjhz 发布时间: 2007-08-08
那可差远了哦.
作者: crane 发布时间: 2007-08-08
现实中如果只是网建项目,根本不需要这么多,会读取+执行SQL+输出就行了,再搞点增删改
那可差远了哦.
呵呵~再加点RSS?
接单的网建80%是企业网站,哪有这么多需求~
至于大的网建,呵呵~当然没法比啦~
作者: 顺顺利利 发布时间: 2007-08-08
作者: softly 发布时间: 2007-08-14
作者: loong_xin 发布时间: 2007-08-15
作者: phpahz 发布时间: 2007-08-15
作者: 月黑风高 发布时间: 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
作者: hengzhi 发布时间: 2007-09-13
作者: phpBird 发布时间: 2007-09-19
作者: lin_chaoqi 发布时间: 2007-09-20
作者: czly 发布时间: 2007-09-26
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
作者: signalon 发布时间: 2007-09-27
:)
作者: luzhou 发布时间: 2007-09-28
楼主为什么不用三元运算符呢?这样子代码不是很简洁吗,另外BS你举这么简单的例子也写错误的语法(定义类是不用带括号的,C++,java,C#都没有这语法),这样对初学者产生的负面影响会很大。
class big_or_smal ...
呵呵,不好意思,献丑了
我那个也没事先咋想的,就写着写着,例子随手写写而已~
你说得很对~
作者: 顺顺利利 发布时间: 2007-09-28
本来不想吱声了.看楼主也太实在了.说两句吧.网建这块真的会增删改就搞定了.可要做大项目还要深入OO啊
呵呵,是呀~
不光是大项目,还有产品开发,每一个类的调用或是变量的声明,都一定要有章有法的~
作者: 顺顺利利 发布时间: 2007-09-28
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28