面向对象和面向过程的不同之处:
1.面向过程:面向过程就像是把一件事情交给一个人去做,这个人会把这件事分成几个步骤,然后去一步一步的完成。
原来(在面向过程)的语法中,我们的代码有如下几种代码:
定义变量;
定义函数;
使用变量(输出,赋值,等)
调用函数;
流程控制(if,switch,for,while等)
2,面向对象:就像是把一件事分成若干部分,然后交给若干不同的人去完成,然后汇总到一起 。 万事万物都是对象。
在面向对象的语法中,则情况就发生变化了:
1,定义类;定义类的语法中,只有这3种代码:
1.1定义属性(变量)
1.2定义方法(函数)
1.3定义常量(类常量)
面向对象的基本概念:
什么是类
类:是用于描述“某一些具有共同特征”的物体的概念,是某一类物体的总称。
通常,一个类所具有的共同特征包括2大方面的信息:
外观,形状,描述,数据。。。。。属性
行为,动作,功能。。。。。。。。方法。
什么是对象
对象: 是指一个具体的“物体”,该物体隶属于某个“类别”(类)。
通常,对象离不开类,没有类,就不能有对象。
对象创建的基本形式
$对象名1 = new 类名();
方式2:
$对象名3 = new self; //self指代类本身,这行代码只能在类内部方法中使用。
对象的传值:
php中,变量传值方式有2个:
值传递: 传递的时候,拷贝的是数据本身。默认都是值传递。
结果:传递完之后,有了2份同样的数据,但两个变量“相互独立”没有关系。
引用传递: 传递的时候,拷贝的是引用关系。需要使用“&”才能实现引用传递。
结果:传递完之后,数据仍然只有一份,但是两个变量共同指向该数据。
则在面向对象这个层面,基本来说,仍然如此:
默认是值传递:
可以使用引用传递:
最简单的实例:
<?php class hero{ var $shuxing = "火"; var $nengli = "喷火"; var $dengji = 5; function show(){ echo "属性:".$this->shuxing.";喷火:".$this->nengli.";等级:".$this->dengji; } } $hero = new hero(); $hero->shuxing; $hero->nengli; $hero->dengji; $hero->show(); ?>
万事万物都是对象。