php 学习之面向对象
2016-12-27 21:08
155 查看
对象创建的基本形式
方式1:$对象名1 = new 类名(); //对象名就是变量名;类是应该定义过了
方式2:
方式3:
$对象名3 = new self; //self指代类本身,这行代码只能在类内部方法中使用。
方式4:通过对象创建对象
• new 对象名;//创建该对象所属类的一个新对象
对象的传值
回顾:php中,变量传值方式有2个:
值传递: 传递的时候,拷贝的是数据本身。默认都是值传递。
结果:传递完之后,有了2份同样的数据,但两个变量“相互独立”没有关系。
引用传递: 传递的时候,拷贝的是引用关系。需要使用“&”才能实现引用传递。
结果:传递完之后,数据仍然只有一份,但是两个变量共同指向该数据。
则在面向对象这个层面,基本来说,仍然如此:
默认是值传递:
可以使用引用传递:
先观察一个现象:
可见,对象变量进行普通传值的时候,复制的是对象变量中所存储的“对象标识符”
那么,我们断开p1跟其存储的数据(标识符)之间的关系,结果是:p2还有效:
可见p1和p2之间是值传递。
再来对比看看引用传递:
静态属性
在定义属性的时候,前面加上关键字:static,此时就是静态属性。静态属性有什么用?
对比来说:一般属性,他的值是隶属于该类的具体某个对象(虽然定义在类中),或者说,每个对象的同样的属性的值,有可能不一样。
静态属性就是:只隶属于类本身——也可以看做是所有对象的“共有数据”。
静态属性的使用:
通过特殊的语法:::(双冒号语法,也叫范围解释符)
类::$静态属性名;
对比普通属性的使用:
对象->普通属性名; //普通属性也可以叫做“实例属性”,相应的,对象也叫“实例”
实际上,通过对象也可以使用静态属性(但属于最新的语法,也不推荐):
构造方法
构造方式是类中的一个“特殊”方法,其作用是在实例化一个对象的同时,给该对象的属性赋值,使之一创建完成,就具有了其本身的特有数据(属性值)。1,该方法名字是固定的,为:__construct();
2,该方法必须是普通方法(不能是静态方法)
3,通常该方法应该是public
4,通常该方法中使用$this这个关键字来对属性进行赋值
5,当new 类名()的时候,其实是在调用该构造方法
6,如果一个类中定义了构造方法,则实例化该类时就会调用该方法,且实例化时的参数需要跟构造方法的参数匹配
结果为:
相关文章推荐
- 一步一步学习PHP(6) 面向对象
- 一步一步学习PHP(6)——面向对象
- PHP面向对象三大特点学习
- PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
- PHP面向对象的进阶学习(抽像类、接口、final、类常量)
- php学习 面向对象 课件第1/2页
- 学习PHP面向对象(四)_get(),_set()的用法 这种方法不推荐使用
- php学习笔记------[面向对象的构造与析构方法]
- php学习笔记------[php中面向对象三大特性之一[封装性]的应用]
- 学习PHP面向对象(二)构造方法与析构方法
- PHP学习笔记--面向对象
- php学习笔记------[php中面向对象三大特性之一[继承性]的应用]
- php学习笔记------[php中面向对象三大特性之一[封装性]的应用]
- PHP面向对象的入门学习
- php学习笔记------[php中面向对象三大特性之一[继承性]的应用]
- php学习 面向对象 课件第1/2页
- php学习笔记------[面向对象的构造与析构方法]
- php学习笔记 php中面向对象三大特性之一[封装性]的应用
- PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
- 学习PHP面向对象(三)封装