Hi all,

Just asking because I've been out of the loop for a while (again) but
a coworker recently noticed this BC break in func_get_args() and
friends. While the changes to way func_get_args() do seem necessary
this should probably still be documented. I just wanted to make sure
I'm not breaking any current standards too badly with this. :)

I've added similar notes and examples to func-get-arg.xml and
func-arg-num.xml but have left them out of this email for brevity.

If I don't hear any objections I'll commit tomorrow. Or if I get an OK
tonight, I'll commit tonight. :)

Comments/fixes of course are welcome.


Cheers,

Torben


Index: reference/funchand/functions/func-get-args.xml
===================================================================
--- reference/funchand/functions/func-get-args.xml      (revision 287473)
+++ reference/funchand/functions/func-get-args.xml      (working copy)
@@ -48,6 +48,15 @@
         This function can now be used in parameter lists.
        </entry>
       </row>
+      <row>
+       <entry>5.3.0</entry>
+       <entry>
+        If this function is called from the outtermost scope of a file
+        which has been included by calling <function>include</function>
+        or <function>require</function> from within a function in the
+        calling file, now generates a warning and returns &false;.
+       </entry>
+      </row>
      </tbody>
     </tgroup>
    </informaltable>
@@ -98,6 +107,53 @@
     </screen>
    </example>
   </para>
+  <para>
+   <example>
+    <title><function>func_get_args</function> example before and
+    after PHP 5.3</title>
+    <programlisting role="php">
+<![CDATA[
+test.php
+<?php
+function foo() {
+    include './fga.inc';
+}
+
+foo('First arg', 'Second arg');
+?>
+
+fga.php
+<?php
+
+$args = func_get_args();
+var_export($args);
+
+?>
+]]>
+    </programlisting>
+    <para>
+     Output previous to PHP 5.3:
+    </para>
+    <screen>
+<![CDATA[
+array (
+  0 => 'First arg',
+  1 => 'Second arg',
+)
+]]>
+    </screen>
+    <para>
+     Output in PHP 5.3 and later:
+    </para>
+    <screen>
+<![CDATA[
+Warning: func_get_args():  Called from the global scope - no function
+context in /home/torben/Desktop/code/ml/fga.inc on line 3
+false
+]]>
+    </screen>
+   </example>
+  </para>
  </refsect1>

  <refsect1 role="notes">

Reply via email to