php_oop

相关定义

对象(object):现实生活中的实体,在编程语言中的体现。实体都有属性和功能。一组数据,和操作管理这些数据的操作,定义在一起就形成了一个实体,称之为对象。(属性和方法的集合)

属性(property),对象中,对象所拥有的数据,称之为对象的属性。

方法(method):对象中,对象所拥有的管理数据的能力,称之为方法。

在php中,对象通过对类的实体化形成的对象。

类(class): 对象的模子。 一类的对象抽取出来。一个将对象的行为和属性的一个抽象。就是一个定义。规定了对象应该有哪些属性,应该有哪些操作(方法)。

实例化:一个动作,根据类中所定义的对象的特征,形成一个对象的过程。

注意: php 中,对象一定是通过类的实例化来的。类的地位,只是得到对象的方法。

可以使用php 预定义的类。
stdclass . 通过实例化该类,就可以得到一个对象。
实例化: 通过关键字new 完成.

基本语法

定义类

class 关键字

class 类名 {    成员}

在定义一个类的时,需要知道这个类所实例化的对象,应该具有哪些属性和方法。

增加属性: 对象所拥有的数据,就是定义在类中变量。
增加方法: 对象所拥有的操作,可执行代码就是操作.定义在类中的函数.

注意:类中的成员(属性和方法),需要增加访问修饰限定符,简单的增加--public

实例化对象

通过类得到对象 ,操作符 new 完成.

$stu = new Student();

一个类,可以实例化多个对象,多个不同的对象

对象操作属性和方法

使用操作符 ->

// 对象 -> 成员$stu->a; // 10    

注意,属性名前$没有了

如果存在$, 语法就 变成 属性名(属性标识符) 由变量充当,变成了可变属性的语法

$property_name = 'stu_id';echo $stu->$property_name;

属性名,同变量名一样,严格区分大小写。

保存数据标识符,就区分大小写。
如果是结构标识符,就区分大小写。 比如:函数,类,方法名。

访问方法:

$stu->study();

方法名,不区分大小写
方法名,支持可变方法,方法名有变量来代替

类名,可以使用变量来代替。

$class_name = 'Student'; $stu = new $class_name;

属性

可以在定义时,为属性直接设置初始值,但是必须已经存在的数据(类似于函数参数的默认值)
如果没有默认值,则值为null

属性,每个对象的同名属性,都可以具有不同的值, 每个对象所拥有的属性时不同的数据空间。
因为在实例化对象时,php会为每个对象分配一个独立的空间,保存对象的属性

由于,常规的,每个对象,应该拥有不同的属性值。
建议,在得到该对象时,应该对对象所拥有的属性,进行初始化。

方法

方法,也是属于某个对象。但是通常,方法内所操作的数据,都是该对象所拥有的数据。

在使用对象调用某个方法时,会自动地将当前对象传递到该方法内(类似于参数的传递)。 方法内,会自动使用变量 $this 来接收这个对象。因此,可以在方法内,通过$this方法调用该方法的对象。

构造&析构

类,没有作用域, 作用域,只是讲,函数内和函数外。

注意,想访问到对象的成员(属性和方法),一定要先找到对象和方法。

class Student {    public $stu_id;    public $stu_name;    public function sayName() {        echo $this->stu_name; // zf        var_dump($stu_name); // 报错   Undefined variable        var_dump($GLOBALS['stu_name']); // 报错 Undefined variable     }}$stu = new Student();$stu->stu_id = '16.7.3';$stu->stu_name = 'zf';$stu->sayName();

类中定义的属性,不是相当于类中定义的方法的全局变量。不能直接在方法中使用属性变量的形式访问:

如果直接操作(输出)这个类名,则不会当做类来看待,而是当做常量来看待。

构造

在得到对象时,几乎都需要,对对象属性进行初始化,而且都是一样的操作。在一个操作中完成初始化,然后对该方法进行多次调用。

关键字:php, 对象, 属性, 方法


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部