1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="function.is-a" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>is_a</refname>
<refpurpose>Checks whether the object is of a given type or subtype</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>is_a</methodname>
<methodparam><type>mixed</type><parameter>object_or_class</parameter></methodparam>
<methodparam><type>string</type><parameter>class</parameter></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>allow_string</parameter><initializer>&false;</initializer></methodparam>
</methodsynopsis>
<para>
Determines if the given <parameter>object_or_class</parameter> is the
<parameter>class</parameter> object type,
or has <parameter>class</parameter> as one of its supertypes.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>object_or_class</parameter></term>
<listitem>
<para>
A class name or an object instance.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>class</parameter></term>
<listitem>
<para>
The class or interface name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>allow_string</parameter></term>
<listitem>
<para>
If this parameter set to &false;, string class name as <parameter>object_or_class</parameter>
is not allowed. This also prevents from calling autoloader if the class doesn't exist.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Returns &true; if <parameter>object_or_class</parameter> is the
<parameter>class</parameter> object type,
or has <parameter>class</parameter> as one of its supertypes, &false; otherwise.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>is_a</function> example</title>
<programlisting role="php">
<![CDATA[
<?php
// define a class
class WidgetFactory
{
var $oink = 'moo';
}
// create a new object
$WF = new WidgetFactory();
if (is_a($WF, 'WidgetFactory')) {
echo "yes, \$WF is still a WidgetFactory\n";
}
?>
]]>
</programlisting>
</example>
<example>
<title>Using the <emphasis>instanceof</emphasis> operator</title>
<programlisting role="php">
<![CDATA[
<?php
if ($WF instanceof WidgetFactory) {
echo 'Yes, $WF is a WidgetFactory';
}
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>get_class</function></member>
<member><function>get_parent_class</function></member>
<member><function>is_subclass_of</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
|