php对象

PHP对象

2016年5月29日

16:13

 

类与对象:类是变量与作用域这些变量的函数的集合。对象数据类型也可用于存储数据。

 

封装:隐藏类的数据成员,只向外提供一些公用的操作接口。

 

继承:在类之间建立一种相交关系,使得新定义的派生类的实例可以继承已有基类的特征和能力。

 

多态:是指同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。

 

类实际上就是一个模板,定义了某个概念或真实事物的性质和行为。

对象:类用关键字class定义。创建一个对象首先要创建一个类,创建好类后可使用关键字new来生成类的对象。

class car

var $color;

Function Car($color="green")

{this->color = $color;

}

 

Function What-color() {

Return $this->color;  //this指向当前对象实例的指针。

 

$bmw = new car();

$bmw->what-color();//实例化了一个新的对象。

PHP术语中,根目录是全局名称空间,路径名符号是->  ,在php中,一个变量名只有一个单独的美元符号。

 

声明字段:类中的字段,实际上就是对象中所具有的属性,用来表示实体的某一种状态。

 

使用字段:与变量不同的是,不能直接使用类中的字段,而需要使用'->'操作符调用字段。并且只能使用对象调用。所以在使用字段时,还需要指定相应的对象。

 

Object ->field  此时不使用相应的类名,而是使用$this关键字,该关键字表示要引用当前类中的字段。

 

字段的作用域:

 

public、private、protected、final和static

 

Public:表示修饰的字段的作用域范围是公共作用域。

 

Private: 表示修饰的字段只能在类中访问,类以外的其他位置无法访问该字段。

 

Protected:表示修饰的字段时受保护的,受保护的字段只能在类中调用,不允许在类的外部调用这些字段。

 

Final:当设置为final时,将阻止在子类中覆盖这个字段。

 

Static:静态作用域。

 

静态变量:仅在局部函数域中声明,用关键字static能够声明一个静态变量。静态变量在函数退出时不会丢失值,而且再次调用此函数时,还能保留值。

<?php

 

function myTest()

{

static $x=0;

echo $x;

$x++;

}

 

myTest();

myTest();

myTest();

 

?>

 

 

在 类内部使用时通过self::方法名调用,在类外部使用时通过类名::方法名来调用。(只对于静态变量)

来自 <http://www.runoob.com/php/php-variables.html>

 

抽象类:abstract关键字定义抽象类和抽象方法。当一个类被定义为抽象类时,它将会禁止实例化,而只允许其他类继承。

 

 

 

 

属性:受保护的字段。通过强制在方法中访问和操作字段,一方面保护字段,另一方面允许像访问字段一样访问数据。

 

处理并使用属性的功能。在两个函数getName()和setName()为属性name分别创建获取方法和设置方法。并可以在函数中设置响应的语句实现功能。

 

__set() 该方法主要负责隐藏字段的赋值实现,并在为类字段赋值之前验证类数据,接受一个属性名和相应的值作为输入,如果方法成功执行就返回true,否则返回false。

 

 

方法:用来定义类的行为。类中的方法可以完成指定的功能,并且可以有一个返回值;同样也可以接受输入参数,并对该数字做出校验。调用方法的格式如下:

Object->method_name();  一个类被实例化后,可以使用->关键字引用该对象中的属性和方法。

 

声明方法:可以在类中创建一个方法,其语法格式和函数的创建相同,但类中的方法都必须使用public、protected或者private等作用域定义。若没有设置关键字,默认作用域为public。

 

 

 

构造函数:主要是在定义对象实例化时,自动执行的代码。构造函数可以接受参数或有默认值。可以定义一个类来建立一个对象并将其属性完全放在一个语句中,语法:

Function __construct({arg1,arg2,…,argn}){方法体}。

 

 

在构造函数中不仅可以调用类本身的方法,还可以调用其他类的构造函数,调用其他类的构造函数的语法格式为:classname::__construct();在子类中也可以调用父类的构造函数。

 

析构函数:__destruct() ,如果没有定义析构函数,在PHP中也可以自动进行内存管理,清除不再需要的对象。

 

/对象函数:class_exists(string $class_name),判断类是否存在。

  get_class(object object) 返回所属类的类名。
method_exists()函数 如果方法名所指的方法在对象所指的类中已定义,则返回true。

 

Interface_exists()函数:确定一个借口是否存在,如果存在则返回true。

 

 

 

posted @ 2017-09-12 16:00  xiaogao2700c  阅读(247)  评论(0编辑  收藏  举报