• 客服QQ:114297999 合作电话:4000288880
  • 盱眙是我家,文明靠大家!小城盱眙网与您携手共建和谐盱眙、美好盱眙!
查看: 1601|回复: 0
打印 上一主题 下一主题

PHP入门教程之面向对象,带你进入PHP世界

[复制链接]

中级会员

Rank: 3Rank: 3

积分
468
跳转到指定楼层
楼主
发表于 2016-9-28 13:54:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PHP是弱变量的脚本语言,也就是说你无需先定义,这一点很灵活。也可以给予很大的自由度,但对于程序来说,自由并非好事。

因为给予后期维护人员阅读带来很大的麻烦。

下面海文的济南PHP培训老师带大家进入PHP世界,第一个PHP程序:

1.php

  ////////////////////
?classhelloWorld{
 var$hellow_str="HelloWorld!";
 functionhelloWorld(){
echo$this-hellow_str;
 }
}
$p=newhelloWorld;
?
////////////////////
很明显,这是一个类,很简单的类,只有一个构造函数。目的就是输出"HelloWorld";首先我们定义了一个类成员变量,通过一个特殊的$this对象,输出该变量,oop思想我不是很精,仅仅在于php开发方面用到,其他的也只是借鉴,但是我想对于php开发者已经足够了。

接下来,解释下什么是$this对象,从这点我们先要知道什么是类。

类,可以解释为一群相同的群体,在类中的成员变量,如上面的$hellow_str可以看作是这个群体的独特的特征,比如,桌子群体是一个类,桌子都有桌面,桌脚,这些都有的东西,就是桌子全体的共有特征,在程序类里面我们就可以定义其为桌子类的一个成员变量。

  ////////////
classdesktop{
 var$desktop;#桌子面;
 var$baluster;#桌子腿;
}
///////////
同样,在桌子世界里,他们也有共同的动作,比如移动[也许你现在就在推桌子^^],也可能我们要把桌子的面子放大点,一样,这个就是桌子群提的共有方法了,[和特征近似哦,不过这是动作罢了]。让我们把这个共同特征加到类中去吧。

  ////////////////
classdesktop{
 var$desktop;#桌子面;
 var$baluster;#桌子腿;
 functionmove(){
#....
 }
 functionlargen(){
#...
 }
}///////////////
知道了上面的,那么接下来就很好理解什么是$this对象了,没有错,他就是桌子群中的一个特定的对象,如果阁下还不能理解,那么,
我们接着解释。

如果,我们现在要对一张桌子进行整改,比如,我们想把桌子面积做的更大,那么,我们针对的就不是一群桌子,而是这个要整改的特定的桌子,这是个个体!所以,我们要把这个类进行实例化进行精确定位。因为,其他桌子我们不需要整改。

  ////////////////
classdesktop{
 var$desktop;#桌子面;
 var$baluster;#桌子腿;
 functionmove(){
#....
 }
 functionlargen(){
$this-desktop++;#放大桌子面
 }
}
$d=newdesktop;#“实例化,这个时候我们就是针对一个特定的桌子拉!
$d-largen();#哈哈,把这个特定桌子面放大点。其实$d=$this;明白吗,$d就是那个特定的桌子,$d-largen就是用那个特定桌子[桌子群大家都有的变大方法]把特定桌子面放大了点。
///////////////

原来,$this就是指一个特定桌子呀,哈哈,明白了,原来类是大家都有的属性,方法的集合,而一个特定的对象,就是这个群体中的一个个体,既然是他们当中的个体,当然拥有群体所拥有的共同特征和方法拉。
#p#分页标题#e#
成员变量,成员方法[成员函数],实例化,大家都知道了。

但是我桌子虽然想变大,可是我还不知道桌子开始有多大啊,这可能吗,怎么办呢?

接下来,我们隆重推出构造函数来拉。要说到构造函数啊,话多啊,就不多说了,他就是给我们桌子面和桌子腿确定大小的。

  ////////////////
classdesktop{
 var$desktop;#桌子面;
 var$baluster;#桌子腿;
 functiondesktop(){
$this-desktop=100;
$this-baluster=100;
 }
 functionmove(){
#....
 }
 functionlargen(){
$this-desktop++;#放大桌子面
 }
}
////////////
看到了吧,我把桌子定义了大小和长度哦
//////////
聪明的你,一定想立即实例化了吧,如果我开始在定义成员变量里就给值了,那不是说所有桌子都一样大吗?

  //////////////
classdesktop{
 var$desktop;#桌子面;
 var$baluster;#桌子腿;
 functiondesktop(){
$this-desktop=100;
$this-baluster=100;
 }
 functionmove(){
#....
 }
 functionlargen(){
$this-desktop++;#放大桌子面
 }
}
$d=newdesktop;
$d-desktop();
////////////////////
可是结果却是:Calltoamemberfunctiondesktop()align=centerbgColor=#e7e9e9border=1>  functiondesktop(){
 $this-desktop=100;
 $this-baluster=100;
}
是个构造函数,什么是构造函数呢,哎呀,原来构造函数是类特有的函数,在类被实例化后,类会第一步自动执行构造函数,它在为类开辟内存单元嘛。

为了验证是不是它一开始就执行,大家请把目光放到本教程第一个代码上去,嘎嘎,您看到了把,一个和类名一样的方法,一个构造函数,在我们实例化后就已经输出代码了吧,这就证明我还没有说错呢。

好了,回到我们的桌子世界里,你发现了,我们这个时候所有桌子面和腿都是100了。

2.php

执行代码

  //////////////
?
classdesktop{
 var$desktop;#桌子面;
 var$baluster;#桌子腿;
 functiondesktop(){
$this-desktop=100;
$this-baluster=100;
echo"我们桌子家族命令大家把桌子面子都给我统一在".$this-desktop."大小!<br/";
 }
 functionmove(){
#....
 }
 functionlargen(){
$this-desktop++;#放大桌子面
echo"7~,小桌子我今天改造了,不鸟你们拉,哈哈,我现在面子可比你们大,我有".$this-desktop."嘎嘎";
 }
}
$d=newdesktop;
$d-largen();
?
小桌子,逃离了桌子家族,因为,我们的面子没小桌子这nb大了。桌子老长老看不下去了,小样,看我的。

  //////////////
?
classdesktop{
 var$desktop;#桌子面;
 var$baluster;#桌子腿;
 functiondesktop($desktop){
$this-desktop=$desktop;
$this-baluster=100;
echo"我们桌子家族命令大家把桌子面子都给我统一在".$this-desktop."大小!<br/";
 }
 functionmove(){
#....
 }
 functionlargen(){
$this-desktop++;#放大桌子面
echo"7~,小桌子我今天改造了,不鸟你们拉,哈哈,我现在面子可比你们大,我有".$this-desktop."嘎嘎";
 }
}
$d=newdesktop;
$d-largen();
?
小桌子,左转转,右转转看了半天,逛累了,觉得自己现在也进化了,该看看新同类了于是;桌子变身执行后,发现......

  /////
$d=newdesktop(101);
////
我还是一张小桌子。
更多知识干货分享,尽在海文信息技术有限公司http://www.sdoracleoaec.com/

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 支持支持 反对反对
回复

使用道具 举报

使用 高级模式(可批量传图、插入视频等)
您需要登录后才可以回帖 登录 | 立即注册

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