- PHP中类的定义方法
格式:
class 类名
{
//类定义内部
var $属性1;
var $属性2;
…
var $属性n;
function 方法1(){
}
function 方法2(){
}
…
function 方法n()
{
}
}
1、类定义内部$this的含义:指向类本身
2、类定义内部属性的访问方法:$this->属性 外部: $对象名->属性
3、类定义内部函数的访问方法:$this->函数() 外部: $对象名->函数()
4、类的构造函数:与类名相同的函数,在类被实例化时自动执行。
5、类的继承,将继承基类的所有属性和函数:class 新类名 extends 基类{…}
6、类的定义一般放在一个单独的文件中,在需要该类时包含进来即可。
7、类的实例化方法: $对象名=new 类名(); $对象名=new 类名(值1,值2,..,值n);
8、类中成员(属性及函数)的修饰符:
1) private ------------私有的,只能在内部被访问,不会被继承
2) public ------------公共的,可以在内部及外部访问,会被继承还是公共的
3) protected --------受保护的,不能在外部被访问,可以被继承,并且继承之后仍然是受保护的
在PHP中,类属性及方法默认都是public。
- PHP的类和对象函数:
1、class_exists:检索类是否存在
格式:class_exists(“类名”)
例:
//class MyClass{}
if(class_exists("MyClass"))
{
echo "MyClass类存在!";
}else{
echo "MyClass类不存在!";
}
2、get_class:返回一个对象所属类的名字
格式:get_class(对象)
例:
class MyClass{}
$cmyclass=new MyClass;
echo get_class($cmyclass);
3、get_class_methods:返回包含类的所有方法的数组
格式:get_class_methods(“类名”)
例:
class Cart
{
var $items; //数组,卡车中货物名称做数组下标,值为货物数量
function add_item($artnr,$num) //向卡车中对应货物$artnr增加$num数量
{
$this->items[$artnr] +=$num;
}
function remove_item($artnr,$num) //从卡车中对应货物$artnr减小$num数量
{
if($this-> items[$artnr]>$num)
{
$this->items[$artnr] -=$num;
return true;
}else{
return false;
}
}
}
$arr=get_class_methods("Cart");
foreach($arr as $method)
{
echo $method . "<br>";
}
4、get_class_vars:返回包含类的所有属性的数组
格式:get_class_vars(“类名”)
例:
class MyClass
{
var $a;
var $b;
var $c;
}
$arr=get_class_vars("MyClass");
foreach($arr as $key=>$prop)
{
echo $key ."=".$prop. "<br>";
}
5、get_object_vars:返回一个包含对象所有属性的关联数组
格式:get_object_vars(对象)
例:
class MyClass
{
var $a;
var $b;
var $c;
}
$obj=new MyClass;
$obj->a=1;
$obj->b=2;
$obj->c=3;
$arr=get_object_vars($obj);
foreach($arr as $key=>$prop)
{
echo $key . "=" .$prop . "<br>";
}
6、method_exists:检查对象的方法是否存在
格式:method_exists(对象,”方法名”)
例:
class MyClass
{
var $a;
var $b;
var $c;
function setA($a)
{
$this->a=$a;
}
}
$obj=new MyClass;
if(method_exists($obj,"setA")==true)
{
echo "方法存在";
}else{
echo "方法不存在";
}
7、对象之间的比较:
1)、==:
如果两个对象属于同一个类,且两个对象对应的属性值相同。则相等,否则不相等。
class MyClass
{
var $a;
var $b;
var $c;
function setA($a)
{
$this->a=$a;
}
}
$obj=new MyClass;
$obj->a=1;
$obj->b=2;
$obj->c=3;
$obj1=new MyClass;
$obj1->a=1;
$obj1->b=2;
$obj1->c=3;
if($obj==$obj1)
{
echo “相等";
}else{
echo “不相等";
}
2)、===:
如果两个对象之间是引用关系,则两个对象相等,否则不相等。
class MyClass
{
var $a;
var $b;
var $c;
function setA($a)
{
$this->a=$a;
}
}
$obj=new MyClass;
$obj->a=1;
$obj->b=2;
$obj->c=3;
$obj1=& $obj;
if($obj===$obj1)
{
echo “相等";
}else{
echo “不相等";
}
本文详细介绍了PHP中类的定义方法、属性与方法的访问方式、构造函数、继承等内容,并列举了类和对象常用函数的使用示例。

被折叠的 条评论
为什么被折叠?



