仓酷云

标题: PHP网页编程之防止OOP的模式,POP的思惟 [打印本页]

作者: 若相依    时间: 2015-2-4 00:30
标题: PHP网页编程之防止OOP的模式,POP的思惟
通过这段时间的学习实践,对软件开发有了更多新的认识,不在局限于之前的片面性。当然,现在所学到的东西其实并不多,离当一个真正的程序员,还有很大的差距。   防止OOP的模式,POP的思惟
很久没发手艺性文章了,明天在21PHP里看到有位兄弟发了这贴子,转了过去.对增强OOP的进修有些用

----------------------------------------------------------
防止OOP的模式,POP的思惟
跟着PHP对OOP(面向对象编程)撑持的加强和法式设计思惟的开展,愈来愈多的PHP法式员走进了OOP的世界.经由过程复杂的进修,大多半法式员都能

疾速的把握OOP编程的根基妙技.法式员们所写的代码里class,new等字符串也愈来愈多.然而作为法式员的你,是不是堕入了一种OO模式,PO思惟的

编程圈套呢?
作为POP时期的法式员,为了完成盘算一件房子的一切门的价钱,他们会写如许一个函数.
代码:
/******************************************
函数:priceOfHouseDoor($num,$price)
功效:盘算一切的门的价钱总和
参数:$num 门的数目,$price 每扇门的价钱
备注:surfchen @ http://www.yubeinet.com/
******************************************/
function priceHouseDoor($num,$price)
{
return $num*$price;
}
echo priceHouseDoor(2,5);//输入价钱
或爽性来个更进程的:
代码:
$doors=2;//门数目
$price=5;//每扇门的价钱
echo $doors*$price;//输入价钱
这是典范的POP.当懂得了OOP后,良多人能够会改动完成这个功效的代码.也许,法式员们会这么写:
代码:
class house
{
/******************************************
函数:getDoorPrice($num,$price)
功效:盘算一切的门的价钱总和
参数:$num 门的数目,$price 每扇门的价钱
备注:surfchen @ http://www.yubeinet.com/
******************************************/
function getDoorPrice($num,$price)
{
return $num*$price;
}
}
$house=new house;
echo $house->getDoorPrice(2,5);//输入价钱
咱们一会儿就看出来,这段代码用到了OOP的代表 -- 类和实例化.那末,这就是面向对象编程了吗?
我再细心一看,发明这个类其实只不外是下面的priceOfHouseDoor($num,$price)函数的面向对象模式.

嗯,如今咱们先切磋一下究竟甚么才叫面向对象编程.我的了解是:面向对象编程有两个中心内容.一是类,二是实例.类是对一类事物的笼统,而实

例是这一类事物中的个别.而实例的属性(值)和办法(函数),则分离是这个个别的详细内容和举措.
咱们再来看看下面的这个house类.它有一个办法,getDoorPrice($num,$price),引入了两个参数.一个是房子的门的数目,一个是房子门价.咱们

发明,当咱们利用这个办法时,这两个值是一时构建的,并没有与房子构成任何的接洽.在实践生涯中,一个房子里的门与房子无任何接洽,这是不

可以了解的...正如咱们所晓得的,OOP实际上是咱们真实世界的一个缩影.所以,OOP中的房子和房子的门无任何接洽,也是不成了解的,长短OO的思

维.
那末,咱们应当若何利用真实的OO来完成以上功效呢?请看以下代码:
代码:
class house
{
var $doors;//门的数目
var $pricePerDoors;//每扇门的价钱
function setNumOfDoors($num){$this->doors=$num;}//设定门数目
function setPricePerDoor($price){$this->pricePerDoors=$price;}//设定每扇门的价钱
/*************\
*取得门的价钱 *
\*************/
function getDoorPrice()
{
return ($this->doors)*($this->pricePerDoors);
}
}
$house=new house;
$house->setNumOfDoors(2);//设定门数目
$house->setPricePerDoor(5);//设定每扇门的价钱
echo $house->getDoorPrice();//输入
咱们很分明地看到,以上代码的门的数目和价钱房子已联合在了一同.这才是真实的面向对象.
你不感觉吗?^_^
  多个成员之间重复做相同的工作,很容易因为交流沟通的时候没有进行一致性的文档要求而出现不明错误,严重影响开发进度,导致在预定时间内无法完成该项目或者完成的项目跟原先计划所要实现的项目功能不符合。
作者: 分手快乐    时间: 2015-2-4 13:15
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
作者: 兰色精灵    时间: 2015-2-9 01:00
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
作者: 海妖    时间: 2015-2-9 14:42
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
作者: 飘飘悠悠    时间: 2015-2-13 15:52
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
作者: 仓酷云    时间: 2015-2-27 09:05
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
作者: 山那边是海    时间: 2015-3-3 00:57
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
作者: 透明    时间: 2015-3-11 08:02
基础有没有对学习php没有太大区别,关键是兴趣。
作者: 若相依    时间: 2015-3-12 23:57
爱上php,他也会爱上你。
作者: 乐观    时间: 2015-3-14 07:27
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
作者: 蒙在股里    时间: 2015-3-17 12:34
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
作者: 小妖女    时间: 2015-3-19 19:22
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
作者: 变相怪杰    时间: 2015-3-29 07:42
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
作者: admin    时间: 2015-4-6 01:11
Ps:以上纯属原创,如有雷同,纯属巧合
作者: 金色的骷髅    时间: 2015-4-16 04:04
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
作者: 再见西城    时间: 2015-4-26 02:08
写的比较杂,因为我也是个新手,不当至于大家多多指正。
作者: 灵魂腐蚀    时间: 2015-4-28 02:57
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
作者: 因胸联盟    时间: 2015-6-18 00:22
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
作者: 活着的死人    时间: 2015-7-1 15:13
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
作者: 深爱那片海    时间: 2015-7-7 23:55
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2