代码改变世界

PHP函数-类和对象函数

2012-07-22 11:36  BytesLoop  阅读(234)  评论(0编辑  收藏  举报
  1. class_exists   检查类是否已定义
    1 <?php
    2 class Book{}
    3 if(class_exists('Book')){
    4     $obj=new Book();
    5     echo 'Book 的类存在';    //Book 的类存在
    6 }
    7 ?>
  2. get_class_methods   以数组形式列出类的所有方法
     1 <?php
     2 class Book
     3 {
     4     function asp(){}
     5     function php(){}
     6     function jsp(){}
     7 }
     8 $array=get_class_methods('book');
     9 print_r($array);    //Array ( [0] => asp [1] => php [2] => jsp ) 
    10 ?>
  3. get_class_vars   以数组形式列出类的默认属性
     1 <?php
     2 class Book
     3 {
     4     var $asp;
     5     var $php=123;
     6     var $jsp='jsp';
     7     function book()
     8     {
     9         $this->php=100;
    10     }
    11 }
    12 $book=new Book();
    13 $array=get_class_vars('book');
    14 print_r($array);    //Array ( [asp] => [php] => 123 [jsp] => jsp )
    15 ?>
  4. get_class   返回对象实例所属的类的名字
     1 <?php
     2 class Book
     3 {
     4     var $name = "明日科技";
     5     var $book = "php与mysql开发手册";
     6     var $time;
     7     function setTime($time)
     8     {
     9         $this->time = $time;
    10     }
    11     function getAll()
    12     {
    13         echo $this->book.",作者:".$this->name.",出版日期:".$this->time;
    14     }
    15 }
    16 
    17 class PhpBook
    18 {
    19     var $bookc = "人民邮电出版社";
    20     function sendAll($obj)
    21     {
    22         if(get_class($obj)=="Book"){
    23             echo $obj->book.",作者:".$obj->name.",出版社:".$this->bookc.",出版日期:".$obj->time;
    24         }
    25         else{
    26             echo "来源错误";
    27         }
    28     }
    29 }
    30 
    31 $book = new Book();
    32 $book->setTime("2007年");
    33 
    34 $php = new PhpBook();
    35 $php->sendAll($book);
    36 echo "<br>";
    37 class Asp
    38 {
    39 
    40 }
    41 $asp = new Asp();
    42 $php->sendAll($asp);
    43 
    44 ?>
  5. get_declared_classes   以数组的形式返回当前脚本中所有类的名称
     1 <?php
     2 class Book
     3 {
     4     var $php;
     5 }
     6 class Php{}
     7 class Phpbook{}
     8 $class=get_declared_classes();
     9 print_r($class);
    10 ?>
  6. get_object_vars   返回由对象中定义的属性所组成的关联数组
     1 <?php
     2 class Book
     3 {
     4     var $var1;
     5     var $var2="php";
     6     var $var3;
     7     function book($var1,$var2)
     8     {
     9         $this->var1=$var1;
    10         $this->var2=$var2;
    11     }
    12     function setVar3($var3)
    13     {
    14         $this->var3=$var3;
    15     }
    16 }
    17     $book = new Book("图书","明日");
    18     print_r(get_object_vars($book));    //Array ( [var1] => 图书 [var2] => 明日 [var3] => )
    19     $book->setVar3("明日科技");
    20     print_r(get_object_vars($book));    //Array ( [var1] => 图书 [var2] => 明日 [var3] => 明日科技 )
    21 ?>
  7. get_parent_class   返回对象或类的父类名称
     1 <?php
     2 class MingRi
     3 {
     4     var $mr;
     5 }
     6 class Book extends MingRi
     7 {
     8     var $book;
     9 }
    10 class Soft extends MingRi
    11 {
    12     var $soft;
    13 }
    14 $book=new Book();
    15 $obj=get_parent_class($book);
    16 $str=get_parent_class("soft");
    17 echo '$book 对象的父类是:'.$obj.'<br>';    //$book 对象的父类是:MingRi
    18 echo "soft 类的父类是:$obj";               //soft 类的父类是:MingRi
    19 ?>
  8. is_a   检查对象是否属于该类或该类是否是此对象的父类
     1 <?php
     2 class Book
     3 {
     4     var $var='php';
     5 }
     6 $book=new Book();
     7 if(is_a($book,'book')){
     8     echo '$book 是 Book 的对象';        //$book 是 Book 的对象
     9 }
    10 ?>
  9. is_subclass_of   检查对象是否是该类的子类
     1  <?php
     2 class Book
     3 {
     4     var $var='php';
     5 }
     6 class Soft extends Book
     7 {
     8     var $var=100;
     9 }
    10 $book=new Book();
    11 $soft=new Soft();
    12 if(is_subclass_of($book,'book')){
    13     echo '$book 是 Book 的子类的对象';
    14 }else{
    15     echo '$book 不是 Book 的子类的对象';        //$book 不是 Book 的子类的对象
    16 }
    17 
    18 if(is_subclass_of($soft,'book')){
    19     echo '$soft 是 Book 的子类的对象';        //$soft 是 Book 的子类的对象
    20 }else{
    21     echo '$soft 不是 Book 的子类的对象';
    22 }
    23 
    24 if(is_subclass_of('soft','book')){
    25     echo 'soft 是 Book 的子类的对象';            //soft 是 Book 的子类的对象
    26 }else{
    27     echo 'soft 不是 Book 的子类的对象';
    28 }
    29 ?>
  10. method_exists   检查类的方法是否在对象中存在 
     1  <?php
     2 class Book
     3 {
     4     function php()
     5     {
     6     }
     7     function asp()
     8     {
     9     }
    10     function jsp()
    11     {
    12     }
    13 }
    14 $book=new Book();
    15 if(method_exists($book,'php')){
    16     echo 'PHP 方法存在于 $book 对象的类中';    //PHP 方法存在于 $book 对象的类中
    17 }else{
    18     echo 'PHP 方法不存在于 $book 对象的类中';
    19 }
    20 if(method_exists($book,'java')){
    21     echo 'Java 方法存在于 $book 对象的类中';
    22 }else{
    23     echo 'Java 方法不存在于 $book 对象的类中';    //Java 方法不存在于 $book 对象的类中
    24 }
    25 ?>