
面向对象
Just Easy Life
你的大脑是用来思考的,是很宝贵的,别把一支笔就可以做的事情,强加给你的大脑来做。
切莫在30岁的时候就把身体弄跨了,然后35岁转行了,永远失去了成长为大神的机会
展开
-
PHP构造函数的重载
一、覆盖与重载的区别函数覆盖和重载区别:1,重载。同一个类中。Overload条件:函数名相同,参数列表必须不同,对返回值无要求2,覆盖。子类中。Override条件:函数名称与参数列表和返回值完全相同注意事项:1,子类方法覆盖父类方法时,子类权限必须要大于等于父类的权限。2,静态只能覆盖静态,或被静态覆盖。3...原创 2019-05-17 23:22:16 · 321 阅读 · 0 评论 -
详解PHP后期静态绑定分析与应用
参考经典文章:https://www.jb51.net/article/136794.htmStatic(静态)关键字作用:- 在函数体内的修饰变量的static关键字用于定义静态局部变量。- 用于修饰类成员函数和成员变量时用于声明静态成员。- (PHP5.3之后)在作用域解析符(::)前又表示静态延迟绑定的特殊类。例子:定义静态局部变量(出现位置:局部函数中)特征...转载 2019-04-04 22:29:24 · 154 阅读 · 0 评论 -
面向对象(九)对象和引用,对象比较,后期静态绑定
一、对象和引用对象编程经常提到的一个关键点是“默认情况下对象是通过引用传递的”。但其实这不是完全正确的。下面通过一些例子来说明。PHP 的引用是别名,就是两个不同的变量名字指向相同的内容。在 PHP 5,一个对象变量已经不再保存整个对象的值。只是保存一个标识符来访问真正的对象内容。 当对象作为参数传递,作为结果返回,或者赋值给另外一个变量,另外一个变量跟原来的不是引用的关系,只是他们都保存...原创 2019-04-02 12:51:37 · 156 阅读 · 0 评论 -
面向对象(八)instanceof和final关键字
一、instanceof类型运算符1、用于确定一个 PHP 变量是否属于某一类 class的实例class MyClass{}$a = new MyClass;var_dump($a instanceof MyClass);//true2、也可用来确定一个变量是不是继承自某一父类的子类的实例class ParentClass{}class MyClass e...原创 2019-04-02 12:50:58 · 121 阅读 · 0 评论 -
面向对象(七)类型约束
一、类型约束PHP 5 可以使用类型约束。函数的参数可以指定必须为对象(在函数原型里面指定类的名字),接口,数组(PHP 5.1 起)或者callable(PHP 5.4 起)。不过如果使用NULL作为参数的默认值,那么在调用函数的时候依然可以使用NULL作为实参。如果一个类或接口指定了类型约束,则其所有的子类或实现也都如此。类型约束不能用于标量类型如int或strin...原创 2019-04-02 12:50:32 · 164 阅读 · 0 评论 -
面向对象(六)Trait特性
自 PHP 5.4.0 起,PHP 实现了一种代码复用的方法,称为 trait。1、类中的一般的特性Trait都可以实现。但是要混入类中,而不是代替类2、Trait是为了减少单继承语言的限制,例如需要同时继承两个抽象类,这是PHP语言不支持的功能,Trait就是为了解决这个问题 在继承类链中隔离了子类继承父类的某些特性,相当于要用父类特性的时候,如果有Trait在就优先调用Tr...原创 2019-04-02 12:49:28 · 444 阅读 · 0 评论 -
面向对象(五)抽象类与接口
抽象类是一种特殊的类,而接口是一种特殊的抽象类。他们通常配合面向对象的多态性一起使用一、抽象类1、抽象方法就是没有方法体的方法,是为了方便继承而引入的。不能使用private修饰为私有的2、只要在声明类时有一个方法是抽象方法,那么这个类就是抽象类,抽象类也要使用abstract关键字修饰。抽象类中可以有不是抽象的成员方法。3、由于抽象类中有没有被实现的抽象方法,所以抽象类是不能被实...原创 2019-03-31 14:25:04 · 299 阅读 · 0 评论 -
面向对象(四)static关键字的使用
一、范围解析操作符 (::)·1、范围解析操作符更简单地说是一对冒号,可以用于访问静态成员,类常量,还可以用于覆盖类中的属性和方法。2、当在类定义之外引用到这些项目时,要使用类名。3、可以通过变量来引用类,该变量的值不能是关键字(如self,parent和static)。4、self,parent和static这三个特殊的关键字是用于在类定义的内部对其属性或方法进行访问...原创 2019-03-28 23:03:35 · 232 阅读 · 0 评论 -
面向对象(三)三大特性
访问控制(可见性)对属性或方法的访问控制,是通过在前面添加关键字public(公有),protected(受保护)或private(私有)来实现的。被定义为公有的类成员可以在任何地方被访问。被定义为受保护的类成员则可以被其自身以及其子类和父类访问。被定义为私有的类成员则只能被其定义所在的类访问。1、类属性必须定义为公有,受保护,私有之一受保护属性可以被子类继承或重载,私有属性不能被...原创 2019-03-28 22:26:42 · 266 阅读 · 0 评论 -
魔术方法(一)__construct,__destruct
通常以__(两个下划线)开始,并且不需要显示的调用而是由某种特定的条件触发,具有某些特殊的功能和要求,新版本15个魔术方法。一、构造函数1、__construct()触发机制:使用关键字new实例化对象时会自动调用构造方法参数:个数不限作用:完成一些对象的初始化工作。常用的比如实现数据库自动连接。将构造函数声明为私有方法,可以防止在类外部创建对象,这在单例模式中经常...原创 2019-03-28 16:32:37 · 2106 阅读 · 0 评论 -
面向对象(二)类的自动加载
spl_autoload_register([callable$autoload_function[,bool$throw= true[,bool$prepend= false]]] ) :boolspl_autoload_register()函数可以注册任意数量的自动加载器,当使用尚未被定义的类(class)和接口(interface)时自动去加载。不再建议...原创 2019-03-28 16:06:29 · 146 阅读 · 0 评论 -
面向对象(一)类、成员、对象实例
OOP达到了软件工程的三个目标:重用性、灵活性和扩展性OOP的三大特性:封装、继承、多肽一、类1、类名、变量名及函数名的命名规则相似。如果由多个单词组成,习惯上每个单词的首字母要大写。另外类名的定义也要具有一定的意义,不要随便由几个字母组成。2、修饰类的关键字abstract、final等3、成员属性或成员方法可以使用public、protected、private等关键字修饰...原创 2019-03-27 22:58:27 · 274 阅读 · 0 评论