jimw Fri Jan 19 20:01:40 2001 EDT
Added files:
/phpdoc/en/appendices incompat.xml
Modified files:
/phpdoc manual.xml.in
Log:
new incompatibilities appendix, using info from website
Index: phpdoc/manual.xml.in
diff -u phpdoc/manual.xml.in:1.46 phpdoc/manual.xml.in:1.47
--- phpdoc/manual.xml.in:1.46 Sun Jan 14 15:47:48 2001
+++ phpdoc/manual.xml.in Fri Jan 19 20:01:40 2001
@@ -150,6 +150,7 @@
<part id="appendixes">
<title>&Appendixes;</title>
&appendices.migration;
+ &appendices.incompat;
&appendices.phpdevel;
&appendices.debugger;
</part>
Index: phpdoc/en/appendices/incompat.xml
+++ phpdoc/en/appendices/incompat.xml
<appendix id="incompat">
<title>Incompatibilities</title>
<sect1 id="incompat.php4">
<title>Incompatibilities from PHP 3 to PHP 4</title>
<itemizedlist>
<listitem><simpara>
Static variable and class member initializers only accept scalar values (in PHP
3.0 they accepted any valid expression). The impact should be small, since
initializers with anything but a simple static value rarely make sense.
</simpara></listitem>
<listitem><simpara>
The scope of break and continue is local to that of an
<function>include</function>'d file or an <function>eval</function>'d string. There
should be virtually no impact for this incompatibility.
</simpara></listitem>
<listitem><simpara>
A return statement from a <function>require</function>'d file no longer works. It
hardly worked in PHP 3.0, so the impact should be fairly small. If you want this
functionality - use <function>include</function> instead.
</simpara></listitem>
<listitem><simpara>
<function>unset</function> is no longer a function, but a statement. It was never
documented as a function, so the impact here will probably be non existent.
</simpara></listitem>
<listitem><simpara>
The following letter combination is not supported within encapsulated strings:
"{$". If you have a string that includes this letter combination, for example, print
"{$somevar"; (which printed the letter { and the contents of the variable $somevar in
PHP 3.0), it will result in a parse error under Zend. In this case, you would have to
change the code to print "\{$somevar"; This incompatability is due to the full
variable reference within quoted strings feature added in Zend.
</simpara></listitem>
<listitem><simpara>
The function <function>short_tags</function> no longer works. There is no way to
change PHP's short tags behavior in runtime, only by using configuration parameters
(.htaccess variables would work well).
</simpara></listitem>
<listitem><simpara>
You can't use PHP 3 dynamic extensions (php3_*.dll on Windows) with PHP 4.
</simpara></listitem>
<listitem><simpara>
The string "0" is now considered empty. This is known to have an effect on
phpMyAdmin.
</simpara></listitem>
<listitem><simpara>
In PHP 4, multiple calls to <function>setcookie</function> are performed in the
order called, whereas in PHP 3 they were performed in reverse order.
</simpara></listitem>
<listitem><simpara>
<function>unset</function> now breaks the association between a locally scoped
variable and one that is globally scoped if the reference is made using the "global"
keyword.
</simpara></listitem>
<listitem><simpara>
Associative array subscripts should be quoted. If you fail to quote them, they
will be interpreted as constants. This can cause unpredictable results when using
keywords such as "NULL" as an unquoted array subscript.
</simpara></listitem>
</itemizedlist>
</sect1>
</appendix>
<!-- 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
sgml-parent-document:nil
sgml-default-dtd-file:"../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->