本文总结了PHP面向对象编程的实例要领,供大家参考,具体分析如下:

1使用扩展来实现继承、重载和魔法方法的含义。

B类扩展

在声明时,B中没有A的方法。

当呼叫被调用时:

新的b();

$(a)中的方法;

$ - A中的属性是= 1;

$ b(b)中的方法();

$ b(b)中的方法();

如果$ =新的A();

当然

$ a(a)中的方法;

$ a > a中的属性是= 1;

不可能

$ a(b)中的方法();

$ a(b)中的方法();



重载:B继承A,B实现与A相同名称的方法属性。

The heavy load in PHP is different from most other object oriented languages.The traditional heavy load is a class method for providing multiple homonyms, but the types and numbers of each method are different.



方法:PHP的所有魔法__(两个下划线)在一开始的方法作为一种魔法。所以你定义你自己的方法,不__前缀。



2私有和受保护访问修饰符可见性的继承

私有不能继承的属性方法

属性方法受保护类在外部不可见,可以继承。

属性方法public定义的类成员可以在任何地方访问。

3个PHP中的双冒号:应用程序

看到PHP代码::这是总机,范围的运营商,是使用双冒号:它在不同的领域的顶级水平,功能说。左边是范围在行动范围正确的成员。

在PHP中定义的两个范围是自我和家长(静态范围设置在php6)。



范围解析操作符(也被称为paamayim nekudotayim),或者只是一双冒号,可以用于访问静态成员、方法和常量,也可以用于子类覆盖父类中的成员和方法。

复制代码代码如下:类{

const_value =一个恒定值的const;

}

Echo MyClass::const_value;

类OtherClass延伸MyClass

{

公共静态my_static美元=静态无功';

公共静态函数doublecolon(){

母::const_value回声。;

回声自::my_static美元。;

}

}

OtherClass::doublecolon();

子类覆盖父类。



{

保护功能myfunc(){

回声MyClass::myfunc()();

}

}

类OtherClass延伸MyClass

{

父类中的覆盖方法

公共职能myfunc()

{

但是仍然可以调用方法。

家长::myfunc();

回声OtherClass::myfunc()();

}

}

美元类=新OtherClass();

美元类-> myfunc();

在4 PHP中,这个角色和父函数及其父函数的作用

这是指向当前对象的对象实例的指针,不指向任何其他对象或类。

表示当前类的范围。与此不同,它不代表类的特定实例。自我不能在类的外部使用的代码,它可以不承认继承层次结构中的位置,使用一个扩展的类的自我时,它不需要父类的方法,但重载方法的扩展类。自是针对类本身,即自不指向任何对象被实例化,和一般自我是指在类的静态变量。

复制代码如下:静态firstcount = 0美元;

私人lastcount美元;

构造函数

__construct()函数

{

美元-> lastcount = + +自: / / firstcount美元;自调用静态变量,必须使用电话自::(域代码)

}

父类:表示当前类父类的范围,其余部分与自特征相同。父级是父类的指针。一般来说,我们使用父函数调用父类的构造函数。

将代码复制如下:继承的类构造函数

功能__construct(personsex美元,美元的人士)

{

家长::__construct(测试); / /母是用来调用父类的构造函数

美元-> personsex = $ personsex;

美元=人物=人物;

}

5构造函数和析构函数

具有构造函数的类在创建对象时将调用此方法,因此它非常适合在对象使用之前初始化某些工作。

功能(__construct){ }

如果构造函数是在类定义的,它不会偷偷打电话给其母构造函数执行父类的构造函数,你需要打电话给父母::__construct()在子类的构造函数。

PHP 5引入了析构函数的概念,这是类似于其他面向对象的语言,如C++析构函数执行。当所有引用一个对象被删除或当对象被显式销毁。

功能(__destruct){ }



最后的6个关键词

PHP 5增加了一个最终关键字。如果父类中的方法被声明为最终的,子类不能重写该方法;如果一个类被声明为最终类,它就不能继承。



7继承和构造函数





父类
子类
结果


构造函数
非构造函数
父亲的结构


构造函数
构造函数
子结构







8接口

接口可以定义为一个接口,就像定义一个标准类一样。

小心 uff1a

1)但是定义所有这些方法的方法是空的;

2)接口中定义的所有方法都必须是公共的,这是接口的特性;

3)实现多个接口,接口方法中没有可用接口;

4)接口也可以通过使用扩展操作符继承;

5)常数也可以定义在接口,接口不变,类常量的使用是完全一样的,他们都是固定值,不能修改子类或接口。

复制代码如下: / /申报a'itemplate'interface

ITemplate接口

{

公共功能setvariable($name,$变量);

公共职能getHTML($模板);

}

接口

以下符号是正确的

类模板实现ITemplate

{

私人$变量=数组();



公共功能setvariable($name,$变量)

{

美元->变量{ } = $ var $name;

}



公共职能getHTML($模板)

{

foreach(美元->变量名称=值美元美元){

美元str_replace({模板。名称}、$、模板;

}



返回$模板;

}

}

9个属性

一个类的变量成员称为属性,属性声明由一个关键字公开或受保护或私有开始,然后由一个变量组成,属性中的变量可以被初始化,但是初始化的值必须是常量。这里的常量意味着PHP脚本在编译阶段是常量,而不是编译后在运行时阶段计算的常量。

在PHP5中,两种功能,__get()和(),__set预定义。

接受和分配属性,并检查__isset()()和删除的属性,__unset()。

一个简单的一个是以价值,另一个是分配。(__set),和(__get)两种方法,这两种方法都不是默认的,但是我们手动添加到类里面去,如施工方法(__construct)(),并添加到类中可以存在,可以以下面的方式来添加这两种方法,当然根据个人风格添加:( / / __get)的方法获得了私有财产

复制代码代码如下:< PHP

类人{

下面是人的属性的一个成员。

私有名称;名称

私人美元;性别

私有美元年龄

/ / __get()方法来获取私人性质

私有函数__get($ property_name){

如果(isset(美元-> property_name美元)){

收益(美元-> property_name美元);}否则{ {

返回(null);

}

}

}

/ / __set()方法用于建立私人性质

私有函数__set(property_name美元,美元价值){

美元美元美元-> property_name =价值;

}

/ / __isset()方法

私有函数__isset($ nm){

回声isset()函数自动电话时,它被用来确定私有成员。

返回isset(美元-> $ nm);

}

/ / __unset()方法

私有函数__unset($ nm){

回声时,将自动调用()函数用于课堂外删除私有成员。

unset(美元-> $ nm);

}

}

新的人();

=;

/ /在使用isset()的私有成员函数,自动呼叫__isset()帮助我们完成并返回正确结果的方法

回声var_dump(isset($ P1 ->名称))。;

名称。;

/ /在未使用()函数来删除私有成员,自动呼叫__unset()来帮助我们完成的方法,删除名字的私有财产

unset($ P1 ->名称);

已被删除,该行将不具有输出。

名称;

>

复制代码代码如下:< PHP

类人{

下面是人的属性的一个成员。

私有名称;

/名称

私人美元;

/性

私人年龄;

年龄

/ / __get()方法来获取私人性质

私有函数__get($ property_name){

如果(isset(美元-> property_name美元)){

收益(美元-> property_name美元);

其他{ }

返回(null);

}

}

}

/ / __set()方法用于建立私人性质

私有函数__set(property_name美元,美元价值){

美元美元美元-> property_name =价值;

}

/ / __isset()方法

私有函数__isset($ nm){

回声isset()函数自动电话时,它被用来确定私有成员。

返回isset(美元-> $ nm);

}

/ / __unset()方法

私有函数__unset($ nm){

回声时,将自动调用()函数用于课堂外删除私有成员。

unset(美元-> $ nm);

}

}

新的人();

=;

/ /在使用isset()的私有成员函数,自动呼叫__isset()帮助我们完成并返回正确结果的方法

回声var_dump(isset($ P1 ->名称))。;

名称。;

/ /在未使用()函数来删除私有成员,自动呼叫__unset()来帮助我们完成的方法,删除名字的私有财产

unset($ P1 ->名称);

已被删除,该行将不具有输出。

名称;

>

10个克隆

对象的复制可以通过clone关键字做(如果有__clone()中的对象的方法,它将被称为第一),__clone()在对象的方法不能直接调用。

当对象是复制,PHP5执行对象的所有属性的浅表副本(浅拷贝)。在所有属性的引用仍然是相同的,指向原始变量。如果我们定义__clone()方法,该__clone()在新创建的对象的方法(复制的对象)将被调用,可根据需要修改该属性的值。

希望本文能帮助您的PHP面向对象编程。