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 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
|
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="function.class-alias" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>class_alias</refname>
<refpurpose>Creates an alias for a class</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>class_alias</methodname>
<methodparam><type>string</type><parameter>class</parameter></methodparam>
<methodparam><type>string</type><parameter>alias</parameter></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>autoload</parameter><initializer>&true;</initializer></methodparam>
</methodsynopsis>
<para>
Creates an alias named <parameter>alias</parameter>
based on the user defined class <parameter>class</parameter>.
The aliased class is exactly the same as the original class.
</para>
<note>
<simpara>
As of PHP 8.3.0, <function>class_alias</function> also supports
creating an alias of a PHP internal class.
</simpara>
</note>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>class</parameter></term>
<listitem>
<para>
The original class.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>alias</parameter></term>
<listitem>
<para>
The alias name for the class.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>autoload</parameter></term>
<listitem>
<para>
Whether to <link linkend="language.oop5.autoload">autoload</link>
if the original class is not found.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.3.0</entry>
<entry>
<function>class_alias</function> now supports creating an alias of an internal class.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>class_alias</function> example</title>
<programlisting role="php">
<![CDATA[
<?php
class Foo { }
class_alias('Foo', 'Bar');
$a = new Foo;
$b = new Bar;
// the objects are the same
var_dump($a == $b, $a === $b);
var_dump($a instanceof $b);
// the classes are the same
var_dump($a instanceof Foo);
var_dump($a instanceof Bar);
var_dump($b instanceof Foo);
var_dump($b instanceof Bar);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
bool(true)
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Class names are case-insensitive in PHP, and this is reflected in this
function. Aliases created by <function>class_alias</function> are declared
in lowercase. This means that for a class
<literal>MyClass</literal>, the <code>class_alias('MyClass', 'MyClassAlias')</code>
call will declare a new class alias named <literal>myclassalias</literal>.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<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
-->
|