许多PHP的爱好者在学习过程中感到对PHP中类的概念较难理解和掌握,虽然知道类既然存在就有其存在的道理,但是由于平时接触和使用的机会较少,也就一略而过。其实,只要我们理解变量和函数这些PHP基本概念的话,掌握类的含义就不成问题。鉴于类在PHP的重要作用,本文将结合具体事例介绍PHP中类的概念和应用。
(一)
所谓类就是指由变量和作用于变量的函数组成的集合。类提供了一种对现实世界中事物的描述方式。通过有效的使用类,我们可以将描述同一对象的多个变量和函数组合在一起,作为一个整体使用,从而使编写出来的程序更直观,更合理,更易于维护。
举一个比较通俗的例子,我们可以创建一个名为Bike的类来描述现实生活中的一辆自行车。首先,我们设定该类中的变量包括踏板$pedals,链条$chain,前轮$front wheel,后轮$rear wheel,刹车$brakes, 以及手柄$handle。然后,我们创建停车Stop(), 加速Accelerate(), 左转TurnLeft()和右转TurnRight()等函数。这样,我们就有了一个可以描述自行车这一对象所有行为和属性的类。例如,我们可以将$front wheel 和$rear wheel变量传入TurnLeft()函数,从而得到某种输出结果。
也许有人会问上述例子虽然有趣,但是我们完全可以使用常规的变量和函数实现同样功能,为什么一定要坚持使用这么烦琐的类呢?当然,如果我们在脚本中只需要描述一辆自行车话,定义一个类似乎没有什么特殊的价值。但是,如果当脚本需要涉及多辆自行车时呢?如果我们还是采用常规的为每量自行车都定义变量和函数的方法,那么光是跟踪每个变量,确保正确的变量输入正确的函数就是一项相当复杂的工作。相反,如果采用类的方式,就可以有效的减少所需变量的数量。此外,一个已经定义的类还可以被包含在其它文件或脚本中,从而实现代码的重复利用。
(二)
对PHP类的概念有所了解之后,我们就来具体看一下如何在脚本中创建和使用类。
相信大家在创建站点时一定会因为要顾及页面的显示效果,字体的样式和大小等细节而影响对整个页面布局和整个站点流程的设计和构思。下面,我们就利用PHP的类来控制HTML的页面输出。
首先,我们使用如下代码创建一个名为Style的类,并在类中定义设置页面属性所需的变量:
<?php
class Style {
var $text;
var $alink;
var $vlink;
var $link;
var $bgcol;
var $face;
var $size;
var $align;
var $valign;
}
?>
相信熟悉HTML语言的读者一定不会对我们在Style类中声名的变量感到陌生。
下面,我们在Style类中创建一个与类同名的函数。代码如下:
<?php
class Style {
function Style ($text="#000000",$alink="#AA00AA",$vlink="#AA00AA",
$link="#3333FF",$bgcol="#999999",$face="Arial",$size=3,
$align="CENTER",$valign= "TOP")
{
$this->text=$text;
$this->alink=$alink;
$this->vlink=$vlink;
$this->link=$link;
$this->bgcol=$bgcol;
$this->face=$face;
$this->size=$size;
$this->align=$align;
$this->valign=$valign;
}
}
?>
说明:
在类中可以使用“$this”指代类本身,使用“->”运算符引用类中的各个变量或函数。类中创建的与类同名的函数称为构造函数。构造函数在创建新的对象实例时自动执行,从而将类中设定的默认值赋予该对象实例。
PHP中,我们可以通过创建对象实例的方法使用一个已经定义的类。语法格式如下:
<?php $Instance_name = new Class; ?>
例如,本例中我们可以使用如下代码创建一个名为$Basic的对象实例,该对象实例将自动获得Style类中构造函数指定的默认值:
<?php $Basic = new Style; ?>
一个类可以创建多个对象实例,其中每个对象实例都继承该类的默认属性,可以调用类中的所有变量和函数。有时我们可能需要为由同一个类创建的多个对象实例设置不同的属性,虽然我们可以在创建对象实例时修改类的默认值,但是这种方式一方面缺乏灵活性,另一方面按照PHP的约定,如果用户在创建新的对象实例时声明了某个变量值的话,则必须同时声明该类中所声明变量之后的所有变量。例如,如果我们在创建$Basic对象实例时显式修改了text变量值的话,则必须同时再声明该类中位于text变量之后的所有变量,即Style类的全部变量都需要再重新声明一遍。显然,我们需要使用其它更为便捷的方式修改对象实例中的某个变量值。这里,我们可以通过在Style类中创建一个专门用于修改变量值的函数实现上述功能。具体代码如下:
Function Set($varname,$value) {
$this->$varname=$value;
}
例如,如果我们需要将$Basic对象实例中size变量的值改为2时,使用如下代码即可实现:
<?php $Basic->Set( ‘size’, 2); ?>
说明:
->运算符用于向PHP解释器说明运行$Basic对象实例中的Set()函数。
通过有效的使用Set()函数,我们可以灵活的设置和控制不同的对象实例。比方说,如果我们希望为页面输出表格的标题行和内容行设置不同的背景颜色和字体大小的话,可以首先创建两个对象实例,然后使用Set()函数分别设置各自不同的属性。具体代码如下:
<?php
$Tableheader= new Style;
$Tableheader->Set( 'text', '#0000FF');
$Tableheader->Set( 'bgcol', '#000000');
?>
<?php
$Tablecontent=new Style;
$Tablecontent->Set( 'bgcol', '#AAAAAA');
$Tablecontent->Set( 'size',2);
?>
许多PHP的爱好者在学习过程中感到对PHP中类的概念较难理解和掌握,虽然知道类既然存在就有其存在的道理,但是由于平时接触和使用的机会较少,也就一略而过。其实,只要我们理解变量和函数这些PHP基本概念的话,掌握类的含义就不成问题。鉴于类在PHP的重要作用,本文将结合具体事例介绍PHP中类的概念和应用。
(一)
所谓类就是指由变量和作用于变量的函数组成的集合。类提供了一种对现实世界中事物的描述方式。通过有效的使用类,我们可以将描述同一对象的多个变量和函数组合在一起,作为一个整体使用,从而使编写出来的程序更直观,更合理,更易于维护。
举一个比较通俗的例子,我们可以创建一个名为Bike的类来描述现实生活中的一辆自行车。首先,我们设定该类中的变量包括踏板$pedals,链条$chain,前轮$front wheel,后轮$rear wheel,刹车$brakes, 以及手柄$handle。然后,我们创建停车Stop(), 加速Accelerate(), 左转TurnLeft()和右转TurnRight()等函数。这样,我们就有了一个可以描述自行车这一对象所有行为和属性的类。例如,我们可以将$front wheel 和$rear wheel变量传入TurnLeft()函数,从而得到某种输出结果。
也许有人会问上述例子虽然有趣,但是我们完全可以使用常规的变量和函数实现同样功能,为什么一定要坚持使用这么烦琐的类呢?当然,如果我们在脚本中只需要描述一辆自行车话,定义一个类似乎没有什么特殊的价值。但是,如果当脚本需要涉及多辆自行车时呢?如果我们还是采用常规的为每量自行车都定义变量和函数的方法,那么光是跟踪每个变量,确保正确的变量输入正确的函数就是一项相当复杂的工作。相反,如果采用类的方式,就可以有效的减少所需变量的数量。此外,一个已经定义的类还可以被包含在其它文件或脚本中,从而实现代码的重复利用。
(二)
对PHP类的概念有所了解之后,我们就来具体看一下如何在脚本中创建和使用类。
相信大家在创建站点时一定会因为要顾及页面的显示效果,字体的样式和大小等细节而影响对整个页面布局和整个站点流程的设计和构思。下面,我们就利用PHP的类来控制HTML的页面输出。
首先,我们使用如下代码创建一个名为Style的类,并在类中定义设置页面属性所需的变量:
<?php
class Style {
var $text;
var $alink;
var $vlink;
var $link;
var $bgcol;
var $face;
var $size;
var $align;
var $valign;
}
?>
相信熟悉HTML语言的读者一定不会对我们在Style类中声名的变量感到陌生。
下面,我们在Style类中创建一个与类同名的函数。代码如下:
<?php
class Style {
function Style ($text="#000000",$alink="#AA00AA",$vlink="#AA00AA",
$link="#3333FF",$bgcol="#999999",$face="Arial",$size=3,
$align="CENTER",$valign= "TOP")
{
$this->text=$text;
$this->alink=$alink;
$this->vlink=$vlink;
$this->link=$link;
$this->bgcol=$bgcol;
$this->face=$face;
$this->size=$size;
$this->align=$align;
$this->valign=$valign;
}
}
?>
说明:
在类中可以使用“$this”指代类本身,使用“->”运算符引用类中的各个变量或函数。类中创建的与类同名的函数称为构造函数。构造函数在创建新的对象实例时自动执行,从而将类中设定的默认值赋予该对象实例。
PHP中,我们可以通过创建对象实例的方法使用一个已经定义的类。语法格式如下:
<?php $Instance_name = new Class; ?>
例如,本例中我们可以使用如下代码创建一个名为$Basic的对象实例,该对象实例将自动获得Style类中构造函数指定的默认值:
<?php $Basic = new Style; ?>
一个类可以创建多个对象实例,其中每个对象实例都继承该类的默认属性,可以调用类中的所有变量和函数。有时我们可能需要为由同一个类创建的多个对象实例设置不同的属性,虽然我们可以在创建对象实例时修改类的默认值,但是这种方式一方面缺乏灵活性,另一方面按照PHP的约定,如果用户在创建新的对象实例时声明了某个变量值的话,则必须同时声明该类中所声明变量之后的所有变量。例如,如果我们在创建$Basic对象实例时显式修改了text变量值的话,则必须同时再声明该类中位于text变量之后的所有变量,即Style类的全部变量都需要再重新声明一遍。显然,我们需要使用其它更为便捷的方式修改对象实例中的某个变量值。这里,我们可以通过在Style类中创建一个专门用于修改变量值的函数实现上述功能。具体代码如下:
Function Set($varname,$value) {
$this->$varname=$value;
}
例如,如果我们需要将$Basic对象实例中size变量的值改为2时,使用如下代码即可实现:
<?php $Basic->Set( ‘size’, 2); ?>
说明:
->运算符用于向PHP解释器说明运行$Basic对象实例中的Set()函数。
通过有效的使用Set()函数,我们可以灵活的设置和控制不同的对象实例。比方说,如果我们希望为页面输出表格的标题行和内容行设置不同的背景颜色和字体大小的话,可以首先创建两个对象实例,然后使用Set()函数分别设置各自不同的属性。具体代码如下:
<?php
$Tableheader= new Style;
$Tableheader->Set( 'text', '#0000FF');
$Tableheader->Set( 'bgcol', '#000000');
?>
<?php
$Tablecontent=new Style;
$Tablecontent->Set( 'bgcol', '#AAAAAA');
$Tablecontent->Set( 'size',2);
?>
PHP中类的理解和应用
时间: 2024-10-01 21:37:58
PHP中类的理解和应用的相关文章
PHP中类的理解和应用[二]
PHP中类的理解和应用[二] 许多PHP的爱好者在学习过程中感到对PHP中类的概念较难理解和掌握,虽然知道类既然存在就有其存在的道理,但是由于平时接触和使用的机会较少,也就一略而过.其实,只要我们理解变量和函数这些PHP基本概念的话,掌握类的含义就不成问题.鉴于类在PHP的重要作用,本文将结合具体事例介绍PHP中类的概念和应用. (一) 所谓类就是指由变量和作用于变量的函数组成的集合.类提供了一种对现实世界中事物的描述方式.通过有效的使用类,我们可以将描述
PHP中类的理解和应用[一]
PHP中类的理解和应用[一] 许多PHP的爱好者在学习过程中感到对PHP中类的概念较难理解和掌握,虽然知道类既然存在就有其存在的道理,但是由于平时接触和使用的机会较少,也就一略而过.其实,只要我们理解变量和函数这些PHP基本概念的话,掌握类的含义就不成问题.鉴于类在PHP的重要作用,本文将结合具体事例介绍PHP中类的概念和应用. (一) 所谓类就是指由变量和作用于变量的函数组成的集合.类提供了一种对现实世界中事物的描述方式.通过有效的使用类,我们可以将描述
AJAX基础:JavaScript中类的实现
ajax|javascript 在JavaScript中可以使用function关键字来定义一个"类",如何为类添加成员.在函数内通过this指针引用的变量或者方法都会成为类的成员,例如: function class1(){ var s="abc"; this.p1=s; this.method1=function(){ alert("this is a test method");
java中类定义的变量和类方法里面定义的变量有什么区别和联系
问题描述 java中类定义的变量和类方法里面定义的变量有什么区别和联系 java中类定义的变量和类方法里面定义的变量有什么区别和联系为什么要再方法当中定义变量,统一在类里面,方法外面定义变量不是更方便快捷么 解决方案 Java中的作用域非常容易理解就看大括号.一个变量的作用域始终是从定义的位置开始直到当前大括号结束.在这个范围之内就可以不使用任何前缀直接访问它.不在这个范围内那就必须得""想办法""访问它. 解决方案二: 类种定义的变量是类的成员变量,在所有的类方法
java-JAVA中类的实例变量和静态变量的赋值
问题描述 JAVA中类的实例变量和静态变量的赋值 学完了面向对象,回头看项目的时候在这个地方有些不太透,对于类的实例变量和静态变量如何赋值和访问及修改(所描述的赋值访问及修改可能用词不准确,恳请指正)谢谢!!! 解决方案 楼主亲,你可以通过这样的方式去理解静态变量和实例变量:(1)静态变量也称为类变量,语法上面用static修饰,这样的变量在JVM(Java虚拟机)将类加载进去的时候就和类一起被分配了内存,这个时候就已经可以使用了,而不需要等到创建类的实例后才能使用.这类变量可以直接通过"类名.
深入理解JVM之五:类文件结构
前言 我们平时在DOS界面中往往需要运行先运行javac命令,这个命令的直接结果就是产生相应的class文件,然后基于这个class文件才可以真正运行程序得到结果.自然.这是Java虚拟机的功劳,那么是不是Java虚拟机只能编译.java的源文件呢?答案是否定的.时至今日,Java虚拟机已经实现了语言无关性的特点.而实现语言无关性的基础是虚拟机和字节码的存储格式,Java虚拟机已经不和包括Java语言在内的任何语言绑定.它只与"class"文件这种特定的二进制文件相关联.在class文
IOS中类和对象还有,nil/Nil/NULL的区别
类与对象的概念 类是对同一类事物高度的抽象,类中定义了这一类对象所应具有的静态属性(属性)和动态属性(方法). 对象是类的一个实例,是一个具体的事物. 类与对象是抽象与具体的关系. 类其实就是一种数据类型,它的变量就是对象. 类与类之间的关系--继承关系 A是B 如果这句话说的通,在设计程序的时候就可以看成是继承关系. 例如:学生与小学生 小学生也是学生,所以学生是小学生的父类,小学生是学生的子类. oc与面向对象 对象是oc程序的核心."万事万物皆对象"是程序中的核心思想. 类是用来
java语法-java中类的对象和类的指针有神马区别和联系
问题描述 java中类的对象和类的指针有神马区别和联系 java中类的对象和类的指针有神马区别和联系 java中类的对象和类的指针有神马区别和联系 解决方案 可以这么理解 ,因为Java中没有指针这个概念,所以可以把对象的地址看作是C语言中的指针. 解决方案二: java中类有引用,没有指针的概念,c语言和c++里面有.
深入理解JVM之二:垃圾收集器概述
前言 我们知道Java的内存区域分为程序计数器.虚拟机栈.本地方法栈.Java堆和方法区,而且其中的程序计数器.虚拟机栈和本地方法栈都是线程独立的,也就是说这三块内存区域的生命周期与线程是同生共死的.栈中帧栈在类结构确定的时候就已经知道该分配多少内存了,所以当线程结束的时候,内存也跟着一起回收了,从这个角度看,这三块的内存区域的内存分配和垃圾收集就比较固定了.反观Java堆和方法区,比如我们定义一个接口,接口有着不同的实现类,而每个实现类的内存可能会不一样,每个实现类的方法的多个语句分支也可能需