php学习心得---面向对象篇

继续之前的视频教学,对php的理解也有了进一步的认识。其实php也是面向对象的,何为面向对象首先得有个对比物才行-------面向过程。

那么问题来了,什么是面向对象,什么又是面向过程呢?这两个抽象的概念对于新手来说不是很好理解,还好的是我已经工作好几年了,算是职场老人了。我也把这个问题问了个旁边新员工,根据他的反馈,觉得他还是没有理解面向对象和面向过程的概念。所以,我就跟他打了个比喻,面向过程就好比做一件事情,要按照步骤一步一步执行,就像自个儿做饭的顺序,而面向对象就好比把一样菜进行分工,交给不同的人也就是对象来做,它们做这道菜的其中之一的工序,最后做好这道菜。

php面向对象不可避免就有对象和类,属性与方法。在学习值传递和引用传递这一章节中,我加深了对它们的理解:

class abc {
                    var $ss = 10;
                }
                                    
                $stu02 = new abc();
                $stu03 = $stu02;   
                $stu02->ss = 15;
                echo "stu02->ss is " . $stu02->ss . " stu03->ss is " . $stu03->ss;                                 
                echo "<hr>";

页面显示:



$stu04 = new abc();
                $stu05 = & $stu04;  //这是引用传递
                $stu04->ss = 88;
                echo "stu04->ss is " . $stu04->ss . " stu05->ss is " . $stu05->ss; 

页面显示:

由此可知,不管是只传递还是引用传递,只要对象的一个值变了另一个值也跟着变。我刚开始也不能理解,因为之前一直是做java开发的,对象的引用赋值,得到的另一个对象跟之前的是两个完全不同的对象,怎么可能到最后值也跟着变呢,其实这里的引用只是指向对象的引用名而非对象实体   ,好比  $stu04  ----->  对象引用名  ------->对象实体

所以对象引用名的值该变,也跟着变。

php创建一个对象有三种方式   : 1、 $obj1 = new cls(); $obj2 = new cls(); 第一种我就不讲了,一看很明了  2、 这种方式是实例化原先类的实例名 $obj1 = new cls();

$obj2 = new obj1();   3、class cls{...........}    $obj3 = "cls";
类的成员有以下三个成员组成,属性,方法,常量。

属性分成:实例化属性与静态属性 。方法也有两种: 实例化方法与静态方法。静态属性与方法都可以通过类名直接调用,实例化方法不可以调用静态属性。















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值