PHP 面向对象编程笔记 (麦子 php 第二阶段)

类是把具有相似特性的对象归纳到一个类中,类就是一组相同属性和行为的对象的集合。类和对象的关系:类是相似对象的描述,先有类,再有对象。类是对象的抽象,对象是类的实例。通过class关键字创建类,成员属性是在类中声明的变量,一个类可以包含多个成员属性,成员属性可以有默认值,也可以没有默认值,如果有默认值的话,值不能是变量、表达式、函数和方法的调用,只能是一个值。在类中声明的方法,就是成员方法,一个类可以包含多个成员方法。实例化对象:通过new关键字 + 类名 来实例化类,实例化类的结果产生对象。每个对象都是独立的,不一样。在类外部,通过对象引用名->属性,访问或设置成员属性,通过对象引用名->方法,调用成员方法。在类内部,通过$this->属性名,访问成员属性,通过$this->方法,调用成员方法,$this代表当前的对象。

php内存分配:php内存分为这几部分:栈空间段:空间小,CPU访问速度快,适合存放代码中临时创建的一些变量(临时数据寄存,用于存储占用空间不变,而且比较小的数据类型的内存段:整形,浮点,布尔),栈是后进先出的结构。堆空间段:用于存储进程运行中动态分配的一个内存段,堆空间的大小是不固定的,堆内存的大小可以进行动态的扩展或缩减。可以用堆来存放数据长度可变,占用内存比较大的数据:字符串。数组,对象,都是存储在堆内存段中。代码段:代码段用于存放一些可执行文件的操作命令的,它是可执行程序在内存中的一段镜像,代码段需要防止在运行时被非法修改,所以只允许我们读取操作,不允许写入。函数就存储在代码段中。初始化静态段(数据段):用来存放可执行文件中已初始化的全局变量,也就是存储程序静态分配的变量。在函数中用static关键字声明的静态变量(全局的),保存在初始化静态段中,还有类的静态属性和静态方法也是保存在初始化静态段中。对象在内存中是如何来分配的:在用new关键字创建对象后,对象的引用保存在栈里,对象保存在堆里,对象的方法保存在代码段里。

php的构造函数:__construction,通过构造函数来完成对象数据初始化的工作。在每次用new创建新对象的时候,首先会自动调用类的构造函数。可以在构造函数的参数中为类的成员属性赋默认值。

php的析构函数:__destruct,析构函数,不能带有参数,析构函数会在对象的所有引用被删除或显示的销毁之前会被调用。通过析构函数释放资源,包括结果集,数据库连接等。给对象引用赋值为 null 可以显示调用析构函数。

面向对象的封装性:封装就是把我们的成员属性和成员方法封装起来,封装的目的在于,不想让类的外面“看到”。使用访问修饰符可以实现封装。封装的好处在于可以吧不想暴露给类外面的属性和方法,全部都隐藏起来,把类内部的细节不想让别人看到,这是就可以对成员进行访问控制。php5中的三种访问控制修饰符:public,默认值,在类的内部和外部(通过对象访问)。protected:受保护的,在类的内部或子类中可以访问,但在类的外部,通过对象无法访问。private:私有的,只能在类的内部进行访问。

 php魔术方法:(自动调用)__construct()  __destruct()  __set()  __get()  __isset()  __unset()      __set($propertyName,$propertyVal):在类的外部(通过对象引用)对私有的或受保护的或者未定义的成员属性进行 赋值 的时候会自动调用。__get($propertyName):在类的外部(通过对象引用)对私有的或受保护的或者未定义的成员属性进行 读取 的时候会自动调用。

 ===========下次从第7个视频开始 2018年8月11日2:05:11

猜你喜欢

转载自www.cnblogs.com/Adobe_fans/p/9458140.html
今日推荐