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
|
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision: 299561 $ -->
<sect1 xml:id="language.oop5.changelog" xmlns="http://docbook.org/ns/docbook">
<title>OOP Changelog</title>
<para>
Changes to the PHP 5 OOP model are logged here. Descriptions and other notes regarding
these features are documented within the OOP 5 documentation.
</para>
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>5.3.0</entry>
<entry>
Changed: It's now possible to reference the class using a variable (e.g.,
<literal>echo $classname::constant;</literal>).
The variable's value can not be a keyword (e.g., <literal>self</literal>,
<literal>parent</literal> or <literal>static</literal>).
</entry>
</row>
<row>
<entry>5.3.0</entry>
<entry>
Changed: An <constant>E_WARNING</constant> level error is issued if
the magic <link linkend="language.oop5.overloading">overloading</link>
methods are declared <link linkend="language.oop5.static">static</link>.
It also enforces the public visibility requirement.
</entry>
</row>
<row>
<entry>5.3.0</entry>
<entry>
Changed: Prior to 5.3.0, exceptions thrown in the
<link linkend="language.oop5.autoload">__autoload</link> function could not be
caught in the <link linkend="language.exceptions">catch</link> block, and
would result in a fatal error. Exceptions now thrown in the __autoload function
can be caught in the <link linkend="language.exceptions">catch</link> block, with
one proviso. If throwing a custom exception, then the custom exception class must
be available. The __autoload function may be used recursively to autoload the
custom exception class.
</entry>
</row>
<row>
<entry>5.3.0</entry>
<entry>
Added: The <link linkend="language.oop5.overloading">__callStatic</link> method.
</entry>
</row>
<row>
<entry>5.3.0</entry>
<entry>
Added: <link linkend="language.types.string.syntax.heredoc">heredoc</link>
and <link linkend="language.types.string.syntax.heredoc">nowdoc</link>
support for class <emphasis>const</emphasis> and property definitions.
Note: heredoc values must follow the same rules as double-quoted strings,
(e.g., no variables within).
</entry>
</row>
<row>
<entry>5.3.0</entry>
<entry>
Added: <link linkend="language.oop5.late-static-bindings">Late Static Bindings</link>.
</entry>
</row>
<row>
<entry>5.3.0</entry>
<entry>
Added: The <link linkend="language.oop5.magic.invoke">__invoke</link> method.
</entry>
</row>
<row>
<entry>5.2.0</entry>
<entry>
Changed: The <link linkend="language.oop5.magic.tostring">__toString</link>
method was only called when it was directly combined with
<function>echo</function> or <function>print</function>.
But now, it is called in any string context (e.g. in
<function>printf</function> with <literal>%s</literal> modifier) but not
in other types contexts (e.g. with <literal>%d</literal> modifier).
Since PHP 5.2.0, converting objects without a <literal>__toString</literal>
method to string emits a <constant>E_RECOVERABLE_ERROR</constant> level error.
</entry>
</row>
<row>
<entry>5.1.3</entry>
<entry>
Changed: In previous versions of PHP 5, the use of <literal>var</literal>
was considered deprecated and would issue an <constant>E_STRICT</constant>
level error. It's no longer deprecated, therefore does not emit the error.
</entry>
</row>
<row>
<entry>5.1.0</entry>
<entry>
Changed: The <link linkend="language.oop5.magic.set-state">__set_state</link> static
method is now called for classes exported by <function>var_export</function>.
</entry>
</row>
<row>
<entry>5.1.0</entry>
<entry>
Added: The <link linkend="language.oop5.overloading.members">__isset</link>
and <link linkend="language.oop5.overloading.members">__unset</link> methods.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</sect1>
<!-- 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
-->
|