当前位置: 编程技术>php
本页文章导读:
▪php面向对象 字段的声明与使用
字段是用于描述类的么个方面的性质。 字段是用于描述类的某个方面的性质。它与一般的PHP 变量非常相似,只是有一些细微的差别,本节将介绍这些差别。这一节还将讨论如何声明和使用.........
▪PHP对象Object的概念 介绍
例如,员工管理应用程序可能包括一个EmPloyee 类。然后可以用这个类来创建和维护特定实例,比如Gonn和Sally。 根据预定义的类创建对象常称为类的实例化(class instantiation)。 对象使用new关.........
▪深入了解PHP类Class的概念
例如,一个交通工具可以定义有颜色、轮胎数、制造商、型号和容量等性质,并定义有停止、前进、转弯和鸣笛等行为。在OOP术语中,实体的性质和行为的具体定义称为类(class)。 类的定.........
[1]php面向对象 字段的声明与使用
来源: 互联网 发布时间: 2013-11-30
字段是用于描述类的么个方面的性质。
字段是用于描述类的某个方面的性质。它与一般的PHP 变量非常相似,只是有一些细微的差别,本节将介绍这些差别。这一节还将讨论如何声明和使用字段,下一节则介绍如何使用字段的作用域来进行访问限制。
声明字段
字段声明的有关规则与变量声明的规则非常类似;实际上,可以说没有区别。因为PHP 是松散类型的语言,字段甚至不需要声明;可以由类对象同时创建和赋值,但很少会这样做。相反,常见的做法是在类开始处声明字段。此时可以为字段赋初值。示例如下:
class Employee
{
public $name="John";
private $wage;
}
在这个例子中,两个字段name 和wage 前面都有作用域描述符(public 或Private ) ,这是声明字段时的常用做法。声明之后,每个字段都可以在作用域描述符所指示的范围内使用。如果你不了解作用域对于类字段有何作用,不要担心,后面将会介绍这个问题。
使用字段
与变量不同,字段要使用->操作符引用,而不是使用美元符。此外,因为字段的值一般是给定对象所特有的,所以它与那个对象具有如下的相互关系:
$object->field
例如,在本章开始时描述Employee类包括字段name、title和wage .如果创建了一个名为$employee的Employee类型对象,就可以如下引用这些字段:
$employee->name
$employee->title
$employee->wage
在定义字段的类中引用字段时,还要使用->操作符,但此时不使用相应的类名,而是使用$this 关键字。$this表示要引用当前类(要访问或操作的字段所在的类)中的字段。因此,如果要在上述Employee类中创建一个设置姓名字段的方法,则如下所示:
function setName($name)
{
$this->name=$name;
}
字段是用于描述类的某个方面的性质。它与一般的PHP 变量非常相似,只是有一些细微的差别,本节将介绍这些差别。这一节还将讨论如何声明和使用字段,下一节则介绍如何使用字段的作用域来进行访问限制。
声明字段
字段声明的有关规则与变量声明的规则非常类似;实际上,可以说没有区别。因为PHP 是松散类型的语言,字段甚至不需要声明;可以由类对象同时创建和赋值,但很少会这样做。相反,常见的做法是在类开始处声明字段。此时可以为字段赋初值。示例如下:
代码如下:
class Employee
{
public $name="John";
private $wage;
}
在这个例子中,两个字段name 和wage 前面都有作用域描述符(public 或Private ) ,这是声明字段时的常用做法。声明之后,每个字段都可以在作用域描述符所指示的范围内使用。如果你不了解作用域对于类字段有何作用,不要担心,后面将会介绍这个问题。
使用字段
与变量不同,字段要使用->操作符引用,而不是使用美元符。此外,因为字段的值一般是给定对象所特有的,所以它与那个对象具有如下的相互关系:
代码如下:
$object->field
例如,在本章开始时描述Employee类包括字段name、title和wage .如果创建了一个名为$employee的Employee类型对象,就可以如下引用这些字段:
代码如下:
$employee->name
$employee->title
$employee->wage
在定义字段的类中引用字段时,还要使用->操作符,但此时不使用相应的类名,而是使用$this 关键字。$this表示要引用当前类(要访问或操作的字段所在的类)中的字段。因此,如果要在上述Employee类中创建一个设置姓名字段的方法,则如下所示:
代码如下:
function setName($name)
{
$this->name=$name;
}
[2]PHP对象Object的概念 介绍
来源: 互联网 发布时间: 2013-11-30
例如,员工管理应用程序可能包括一个EmPloyee 类。然后可以用这个类来创建和维护特定实例,比如Gonn和Sally。
根据预定义的类创建对象常称为类的实例化(class instantiation)。
对象使用new关键字创建,如下:
创建对象之后,这个刚实例化的对象就具有了类中定义的所有性质和行为。
如何实例化对象
面向对象程序的单位就是对象,但对象又是通过类的实例化出来的,既然我们类会声明了,下一步就是实例化对象了。当定义好类后,我们使用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这个引用变量来操作对象,通常我们也称对象引用为对象。
根据预定义的类创建对象常称为类的实例化(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这个引用变量来操作对象,通常我们也称对象引用为对象。
[3]深入了解PHP类Class的概念
来源: 互联网 发布时间: 2013-11-30
例如,一个交通工具可以定义有颜色、轮胎数、制造商、型号和容量等性质,并定义有停止、前进、转弯和鸣笛等行为。在OOP术语中,实体的性质和行为的具体定义称为类(class)。
类的定义与创建
类是具有相同属性和服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和方法两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和方法说明两个主要部分。
类用于表示要在应用程序中处理的实际事物。例如,假设要创建一个管理公共图书馆的应用程序,可能就要包括一些类来表示书籍、杂志、员工、特殊事件、顾客以及需要管理的其他事物。每个实体都包含一组性质和行为,在OOP中分别称为字段(field)和方法(method),它们定义了实体。PHP 中一般的类创建语法如下:
class Class_Name
{
// 字段声明
// 方法声明
}
创建一个类:
class Employee
{
private $name;
private $title;
protected $wage;
protected function clockIn() {
echo "Member $this->name clocked in at ".date("h:i:s");
}
protected function clockOut() {
echo "Member $this->name clocked out at ".date("h:i:s");
}
}
这个类名为Employee,定义了3个字段:name、title和wage,还定义了两个方法:clockIn(签到)和clockOut(签离)。
类的应用
一个定义了属性和方法的类就是一个完整的类了,可以在一个类里面包含一个完整的处理逻辑。使用 new 关键字来实例化一个对象以便应用类里面的逻辑。可以同时实例化多个对象。
类的实例化:
object = new class_name();
实例化一个对象后,使用 -> 操作符来访问对象的成员属性和方法。比如:
object->var_name;
object->function_name;
如果要在定义的类里面访问成员的属性或者方法,可以使用伪变量 $this 。$this 用于表示当前对象或对象本身 。
<?php
class Person {
// 人的成员属性
var $name; //人的名字
var $age; //人的年龄
//人的成员 say() 方法
function say() {
echo "我的名字叫:".$this->name."<br />";
echo "我的年龄是:".$this->age;
}
}
//类定义结束
$p1 = new Person(); //实例化一个对象
$p1->name = "Gonn"; //给 $p1 对象属性赋值
$p1->age = 25;
$p1->say(); //调用对象中的 say()方法
?>
程序运行结果:
我的名字叫:Gonn
我的年龄是:25
类的定义与创建
类是具有相同属性和服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和方法两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和方法说明两个主要部分。
类用于表示要在应用程序中处理的实际事物。例如,假设要创建一个管理公共图书馆的应用程序,可能就要包括一些类来表示书籍、杂志、员工、特殊事件、顾客以及需要管理的其他事物。每个实体都包含一组性质和行为,在OOP中分别称为字段(field)和方法(method),它们定义了实体。PHP 中一般的类创建语法如下:
代码如下:
class Class_Name
{
// 字段声明
// 方法声明
}
创建一个类:
代码如下:
class Employee
{
private $name;
private $title;
protected $wage;
protected function clockIn() {
echo "Member $this->name clocked in at ".date("h:i:s");
}
protected function clockOut() {
echo "Member $this->name clocked out at ".date("h:i:s");
}
}
这个类名为Employee,定义了3个字段:name、title和wage,还定义了两个方法:clockIn(签到)和clockOut(签离)。
类的应用
一个定义了属性和方法的类就是一个完整的类了,可以在一个类里面包含一个完整的处理逻辑。使用 new 关键字来实例化一个对象以便应用类里面的逻辑。可以同时实例化多个对象。
类的实例化:
代码如下:
object = new class_name();
实例化一个对象后,使用 -> 操作符来访问对象的成员属性和方法。比如:
代码如下:
object->var_name;
object->function_name;
如果要在定义的类里面访问成员的属性或者方法,可以使用伪变量 $this 。$this 用于表示当前对象或对象本身 。
代码如下:
<?php
class Person {
// 人的成员属性
var $name; //人的名字
var $age; //人的年龄
//人的成员 say() 方法
function say() {
echo "我的名字叫:".$this->name."<br />";
echo "我的年龄是:".$this->age;
}
}
//类定义结束
$p1 = new Person(); //实例化一个对象
$p1->name = "Gonn"; //给 $p1 对象属性赋值
$p1->age = 25;
$p1->say(); //调用对象中的 say()方法
?>
程序运行结果:
代码如下:
我的名字叫:Gonn
我的年龄是:25
最新技术文章: