PHP基础----类

本文详细介绍了PHP中类的定义方法、属性与方法的访问方式、构造函数、继承等内容,并列举了类和对象常用函数的使用示例。

 

  • 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 “不相等";

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值