仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1348|回复: 20
打印 上一主题 下一主题

[学习教程] PHP网站制作之利用OOP手艺来优化PHP使用法式

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:28:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
熟悉了PHP和MYSQL开发的要领之后,再回头看你写的那个留言本,你也许会怀疑那真的是你写的吗?当然,如果屋里还有鬼的话,也许是它写的-_-法式|优化   大多半开辟者以为面绝对象的法式设计(OOP)思惟和PHP是一对抵触,但实践上,PHP封装了开辟者在其使用法式中利用OOP手艺的一切功效。为了证实这一点,让咱们举一个经典的Vehicle(车辆)例子,其PHP类以下:
class Vehicle {
// Stuff goes here!
}

在咱们新建的Vehicle类中,用办法(即PHP函数)来接洽咱们的使用法式和Vehicle类的特征(characteristics)。每个办法都是用来向使用法式描写Vehicle,如许咱们用办法来完成某些功效。请思索上面的例子(它明显长短函数的,即没有给出函数体):
class Vehicle {
function getWheels() {
// 逻辑上用来查询这里的车轮(即wheel)数
return($wheels);
}
function getDoors() {
// 逻辑上用来查询这里的车门(即door)数。
return($wheels);
}
}

这里,咱们看到了两个“getter”函数。假如这看起来、听起来很熟习的话,那是由于PHP的OOP与C或Java十分类似的原因。真实的应战是天真的利用OOP、充实而又无效的利用封装。

为了肯定在把Vehicle集成到你的使用法式这一过程当中你需求晓得哪些内容,界说构成Vehicle的根基元素也许会有所匡助。例如,Vehicles可以依照车门的数量或车轮的数量来组织。

假如咱们想晓得咱们的Vehicle有几何个轮子,咱们需求前往这一信息的函数。在PHP中,这一函数的完成可以如代码清单A所示。

如今咱们的Vehicle类包括了一个叫着getWheels的办法了,当使用法式传递给它一个车辆类型时,它前往轮子的数量。那末,咱们若何把车辆类型这一信息传递给Vehicle类呢?为了更好的了解这一成绩,让咱们演示一下用法,完成咱们的类并挪用它的getWheels办法来失掉car类型车辆的车轮数量。
// 设置车辆品种
$vehicle = "car";

如许咱们已公布了咱们想创立的车辆类型为car。因为咱们利用PHP,因而这个值可所以静态的,但假如如许的话很快就会难以用代码来处置(hard-code)它了。

为了利用这个类,咱们起首需求在使用法式中创立该类的一个实例:
// 创立car类的一个新实例
$myVehicle = &new Vehicle;

咱们方才创立了一个叫着myVehicle的Vehicle类的实例。它是Vehicle类的独一实例,并且它包括了Vehicle所包括的一切数据(办法和属性)。

如今是找出咱们的car究竟有几何个轮子的时分了:
// 经由过程向getWheels办法传递车辆类型来获得车轮数量
$numWheels = $myVehicle->getWheels($vehicle);

正如你所见,咱们挪用了getWheel办法并向它传递了车辆品种。假如一切顺遂的话,咱们就失掉了咱们所需的数据:
// 打印车轮数量
print "$vehicle has $numWheels wheels.";

假如咱们想失掉车门数量,咱们需求编写另外一个反省车门数的办法,如代码清单B所示。


易于编程、易于办理

正如你在这个复杂的演示中所看到的那样,在PHP中完成面绝对象的编程其实不坚苦。像咱们在Vehicle类中那样采取OOP和类,创立一个购物车(shopping cart)其实不会十分费事。因为采取了面向对象的编程思惟,代码易读、易保护、易晋级。

清单C给出了咱们在这里所会商汽车分类使用法式的更高版本的代码。它充实演示了PHP的面绝对象功能。


  建议大家买一本书,而不光是在网上看一些零碎的资料,一本书毕竟会讲的系统一些,全面一些,而且印刷的书不受电脑的限制,但是建议在看书的时候最好旁边有电脑,这样可以很及时地上机实践。
精灵巫婆 该用户已被删除
沙发
发表于 2015-2-4 13:10:49 | 只看该作者
实践是检验自己会不会的真理。
乐观 该用户已被删除
板凳
发表于 2015-2-9 23:06:33 | 只看该作者
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
深爱那片海 该用户已被删除
地板
发表于 2015-2-10 01:47:56 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
灵魂腐蚀 该用户已被删除
5#
发表于 2015-2-28 12:58:51 | 只看该作者
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
小魔女 该用户已被删除
6#
发表于 2015-3-2 21:43:23 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
再现理想 该用户已被删除
7#
发表于 2015-3-11 06:35:19 | 只看该作者
做为1门年轻的语言,php一直很努力。
海妖 该用户已被删除
8#
发表于 2015-3-11 11:47:04 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
金色的骷髅 该用户已被删除
9#
发表于 2015-3-18 08:40:04 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
分手快乐 该用户已被删除
10#
发表于 2015-3-25 02:36:40 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
admin 该用户已被删除
11#
发表于 2015-4-1 12:57:58 | 只看该作者
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
不帅 该用户已被删除
12#
发表于 2015-4-13 08:57:23 | 只看该作者
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
只想知道 该用户已被删除
13#
发表于 2015-4-26 08:29:20 | 只看该作者
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
爱飞 该用户已被删除
14#
发表于 2015-5-2 02:24:46 | 只看该作者
做为1门年轻的语言,php一直很努力。
谁可相欹 该用户已被删除
15#
发表于 2015-5-6 04:09:00 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
活着的死人 该用户已被删除
16#
 楼主| 发表于 2015-6-14 20:00:47 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
第二个灵魂 该用户已被删除
17#
发表于 2015-6-17 21:02:38 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
小女巫 该用户已被删除
18#
发表于 2015-6-21 00:34:48 | 只看该作者
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
若相依 该用户已被删除
19#
发表于 2015-6-22 20:20:06 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
山那边是海 该用户已被删除
20#
发表于 2015-7-4 17:44:49 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-29 23:47

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表