技术开发 频道

PHP开发经典教程 (Part7):面向对象编程

关于类的函数 

    PHP 4和PHP5提供了一系列函数,该等函数经设计用来让你发现对象属性和方法,以及发现一个对象属于哪一个类。前两个这样的函数是get_class()和get_parent_class()函数,这两个函数告诉你产生特定对象的类的名称。考虑下面的类定义:

<?php // PHP 5 // base class class Bear { public $name; public $weight; // constructor public function __construct() { } // define methods public function eat() { } public function run() { } public function sleep() { } } // derived class class GrizzlyBear extends Bear { public function kill() { } } ?>

 
    然后现在考虑下面的脚本,该脚本使用get_class()与get_parent_class()函数从一个实例得到类的名称:

<?php $joe = new GrizzlyBear; $joe->name = "Joe Bear"; $joe->weight = 1000; echo "Class: " . get_class($joe); echo "Parent class: " . get_parent_class(get_class($joe)); ?>

 

    你可以使用get_class_vars()函数来查看一个类所公开的所有属性,而且用get_class_methods()函数来得到一个类公开的所有方法。为了查看特定对象实例的属性,可以使用get_object_vars()函数而不是get_class_vars()函数,下面是一个对其解释的例子:

<?php // create instance $joe = new GrizzlyBear; $joe->name = "Joe Bear"; $joe->weight = 1000; // get class name $className = get_class($joe); // get class properties echo "Class properties: "; print_r(get_class_vars($className)); // get class methods echo " Class methods: "; print_r(get_class_methods($className)); // get this instance's properties echo " Instance properties: "; print_r(get_object_vars($joe)); ?>

 

    下面是一些样本输出:

Class properties: Array ( [name] => [weight] => ) Class methods: Array ( [0] => kill [1] => __construct [2] => eat [3] => run [4] => sleep ) Instance properties: Array ( [name] => Joe Bear [weight] => 1000 )

 

    正如该章程的之前的章节之一所注释那样,print_r函数允许你仔细查看包括对象的任意PHP变量。它非常有用,所以请记录下来以备以后参考。

0
相关文章