is_subclass_of

(PHP 4, PHP 5, PHP 7)

is_subclass_of����˶����Ǹ�������࣬�򷵻� TRUE

˵��

is_subclass_of ( object $object , string $class_name ) : bool

������� object ���������� class_name �����࣬�򷵻� TRUE�����򷵻� FALSE��

Note:

�� PHP 5.0.3 ��Ҳ������һ���ַ�����ָ�� object ��������������

Example #1 is_subclass_of() ����

<?php
// define a class
class WidgetFactory
{
  var 
$oink 'moo';
}

// define a child class
class WidgetFactory_Child extends WidgetFactory
{
  var 
$oink 'oink';
}

// create a new object
$WF = new WidgetFactory();
$WFC = new WidgetFactory_Child();

if (
is_subclass_of($WFC'WidgetFactory')) {
  echo 
"yes, \$WFC is a subclass of WidgetFactory\n";
} else {
  echo 
"no, \$WFC is not a subclass of WidgetFactory\n";
}

if (
is_subclass_of($WF'WidgetFactory')) {
  echo 
"yes, \$WF is a subclass of WidgetFactory\n";
} else {
  echo 
"no, \$WF is not a subclass of WidgetFactory\n";
}

// usable only since PHP 5.0.3
if (is_subclass_of('WidgetFactory_Child''WidgetFactory')) {
  echo 
"yes, WidgetFactory_Child is a subclass of WidgetFactory\n";
} else {
  echo 
"no, WidgetFactory_Child is not a subclass of WidgetFactory\n";
}
?>

�������̻������

yes, $WFC is a subclass of WidgetFactory
no, $WF is not a subclass of WidgetFactory
yes, WidgetFactory_Child is a subclass of WidgetFactory

�μ� get_class()�� get_parent_class() �� is_a()��

����

object

A class name or an object instance

class_name

The class name

allow_string

If this parameter set to false, string class name as object is not allowed. This also prevents from calling autoloader if the class doesn't exist.

����ֵ

This function returns TRUE if the object object, belongs to a class which is a subclass of class_name, FALSE otherwise.

������־

�汾 ˵��
5.3.9 Added allow_string parameter
5.0.3 You may also specify the object parameter as a string (the name of the class)

����

Example #2 is_subclass_of() example

<?php
// define a class
class WidgetFactory
{
  var 
$oink 'moo';
}

// define a child class
class WidgetFactory_Child extends WidgetFactory
{
  var 
$oink 'oink';
}

// create a new object
$WF = new WidgetFactory();
$WFC = new WidgetFactory_Child();

if (
is_subclass_of($WFC'WidgetFactory')) {
  echo 
"yes, $WFC is a subclass of WidgetFactory\n";
} else {
  echo 
"no, $WFC is not a subclass of WidgetFactory\n";
}


if (
is_subclass_of($WF'WidgetFactory')) {
  echo 
"yes, $WF is a subclass of WidgetFactory\n";
} else {
  echo 
"no, $WF is not a subclass of WidgetFactory\n";
}


// usable only since PHP 5.0.3
if (is_subclass_of('WidgetFactory_Child''WidgetFactory')) {
  echo 
"yes, WidgetFactory_Child is a subclass of WidgetFactory\n";
} else {
  echo 
"no, WidgetFactory_Child is not a subclass of WidgetFactory\n";
}
?>

�������̻������

yes, $WFC is a subclass of WidgetFactory
no, $WF is not a subclass of WidgetFactory
yes, WidgetFactory_Child is a subclass of WidgetFactory

ע��

Note:

������಻����֪�࣬ʹ�ô˺�����ʹ���κ���ע��� autoloader��

�μ�

  • get_class() - ���ض��������
  • get_parent_class() - ���ض������ĸ�����
  • is_a() - ����������ڸ��������Ǵ˶���ĸ����򷵻� TRUE
  • class_parents() - ����ָ����ĸ��ࡣ