PHP对象Object的概念 介绍

 更新时间:2012年06月14日 12:25:15   作者:  
类提供了一个基础,可以在此基础上创建实体(即这个类所建模的实体)的特定实例,这些特定实例称为对象(object)
例如,员工管理应用程序可能包括一个EmPloyee 类。然后可以用这个类来创建和维护特定实例,比如Gonn和Sally。

根据预定义的类创建对象常称为类的实例化(class instantiation)。

对象使用new关键字创建,如下:

复制代码 代码如下:
$employee = new Employee();


创建对象之后,这个刚实例化的对象就具有了类中定义的所有性质和行为。

如何实例化对象
面向对象程序的单位就是对象,但对象又是通过类的实例化出来的,既然我们类会声明了,下一步就是实例化对象了。当定义好类后,我们使用new关键字来生成一个对象。
复制代码 代码如下:

class Person
{
//下面是人的成员属性
var $name; //人的名字
var $sex; //人的性别
var $age; //人的年龄

//下面是人的成员方法
function say() //这个人可以说话的方法
{
echo "这个人在说话";
}

function run() //这个人可以走路的方法
{
echo "这个人在走路";
}
}

$p1=new Person();
$p2=new Person();
$p3=new Person();

$p1=new Person();

这条代码就是通过类产生实例对象的过程,$p1就是我们实例出来的对象名称,同理,$p2, $p3也是我们实例出来的对象名称,一个类可以实例出多个对象,每个对象都是独立的,上面的代码相当于实例出来3个人来,每个人之间是没有联系的,只能说明他们都是人类,每个人都有自己的姓名,性别和年龄的属性,每个人都有说话和走路的方法,只要是类里面体现出来的成员属性和成员方法,实例化出来的对象里面就包含了这些属性和方法。

对像在PHP里面和整型、浮点型一样,也是一种数据类,都是存储不同类型数据用的,在运行的时候都要加载到内存中去用, 那么对象在内存里面是怎么体现的呢?内存从罗辑上说大体上是分为4段, 栈空间段、堆空间段、代码段、 初始化静态段,程序里面不同的声明放在不同的内存段里面,栈空间段是存储占用相同空间长度并且占用空间小的数据类型的地方,比如说整型1, 10, 100, 1000, 10000, 100000等等,在内存里面占用空间是等长的,都是64位4个字节。 那么数据长度不定长,而且占有空间很大的数据类型的数据放在那内存的那个段里面呢?这样的数据是放在堆内存里面的。栈内存是可以直接存取的,而堆内存是不可以直接存取的内存。对于我们的对象来数就是一种大的数据类型而且是占用空间不定长的类型,所以说对象是放在堆里面的,但对象名称是放在栈里面的,这样通过对象名称就可以使用对象了。

$p1=new Person(); 对于这个条代码, $p1是对象名称在栈内存里面,new Person()是真正的对象是在堆内存里面的。

等号右边是真正的对象实例,在堆内存里面的实体。这里一共有3次new Person(),所以会在堆里面开辟3个空间,产生3个实例对象,每个对象之间都是相互独立的,使用自己的空间,在PHP里面,只要有一个new这个关键字出现就会实例化出来一个对象,在堆里面开辟一块自己的空间。

每个在堆里面的实例对象是存储属性的,比如说,现在堆里面的实例对象里面都存有姓名、性别和年龄。每个属性又都有一个地址。$p1=new Person();等号的右边$p1是一个引用变量,通过赋值运算符“=”把对象的首地址赋给“$p1”这个引用变量,所以$p1是存储对象首地址的变量,$p1放在栈内存里边,$p1相当于一个指针指向堆里面的对象,所以我们可以通过$p1这个引用变量来操作对象,通常我们也称对象引用为对象。

相关文章

  • php 数组元素快速去重

    php 数组元素快速去重

    本篇文章主要介绍了php数组元素快速去重的方法,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-05-05
  • PHP4和PHP5版本下解析XML文档的操作方法实例分析

    PHP4和PHP5版本下解析XML文档的操作方法实例分析

    这篇文章主要介绍了PHP4和PHP5版本下解析XML文档的操作方法,结合实例形式分析了php4与php5环境下解析xml文档的相关实现技巧与注意事项,需要的朋友可以参考下
    2017-05-05
  • php数组一对一替换实现代码

    php数组一对一替换实现代码

    以下方法能实现匹配关键词并分别对关键词做特殊处理的功能,需要的朋友可以参考下
    2012-08-08
  • PHP排序算法的复习和总结

    PHP排序算法的复习和总结

    对于PHP中对数组的元素进行排序,这个是很经常用到的,之前的项目中也有,而且对于几种排序我们都是用的是asort arsort 等PHP原生函数,没有自己去实现,所以就对一下的几个函数进行总结,这个会不断的进行补充,自己也可以好好的复习和总结
    2012-02-02
  • php自动给文章加关键词链接的函数代码

    php自动给文章加关键词链接的函数代码

    自动给文章加关键词链接的php函数代码,需要的朋友可以参考下
    2012-11-11
  • PHP实现的pdo连接数据库并插入数据功能简单示例

    PHP实现的pdo连接数据库并插入数据功能简单示例

    这篇文章主要介绍了PHP实现的pdo连接数据库并插入数据功能,结合简单示例形式分析了pdo数据库连接及执行基本的插入SQL语句相关操作技巧,需要的朋友可以参考下
    2019-03-03
  • php magic_quotes_gpc的一点认识与分析

    php magic_quotes_gpc的一点认识与分析

    最近一直在做一个文章发布系统,做了改,改了做,一直到现在还没竣工.... 为了达到更好的兼容性,其中的程序涉及到了magic_quotes_gpc,看了下手册,又找了些资料,分析了下,分享给大家。
    2008-08-08
  • 什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释

    什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释

    这篇文章主要介绍了什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释,本文用简洁的语言解释了 它们的不同之处,需要的朋友可以参考下
    2015-07-07
  • PHP对京东联盟CPS的API调用

    PHP对京东联盟CPS的API调用

    这篇文章介绍了PHP调用京东联盟API的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • PHP实现显示照片exif信息的方法

    PHP实现显示照片exif信息的方法

    这篇文章主要介绍了PHP实现显示照片exif信息的方法,需要的朋友可以参考下
    2014-07-07

最新评论