goba Sun Dec 1 05:44:46 2002 EDT
Modified files:
/phpdoc/en/language functions.xml
Log:
Adding explanation about using wrapper functions
instead of the language constructs. Also reworded
the language construct's list a bit, so it indicates
that there are more constructs not working. Added a
new object example on how to use variable funcitons
inside objects.
Index: phpdoc/en/language/functions.xml
diff -u phpdoc/en/language/functions.xml:1.29 phpdoc/en/language/functions.xml:1.30
--- phpdoc/en/language/functions.xml:1.29 Thu Nov 28 15:43:00 2002
+++ phpdoc/en/language/functions.xml Sun Dec 1 05:44:46 2002
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.29 $ -->
+<!-- $Revision: 1.30 $ -->
<chapter id="functions">
<title>Functions</title>
@@ -403,9 +403,12 @@
</para>
<para>
Variable functions won't work with language constructs such
- as <function>echo</function>, <function>unset</function>,
- <function>isset</function>, <function>empty</function>,
- <function>include</function> and <function>print</function>.
+ as <function>echo</function>, <function>print</function>,
+ <function>unset</function>, <function>isset</function>,
+ <function>empty</function>, <function>include</function>,
+ <function>require</function> and the like. You need to use
+ your own wrapper function to use any of these constructs
+ as variable functions.
</para>
<para>
<example>
@@ -423,22 +426,62 @@
echo "In bar(); argument was '$arg'.<br>\n";
}
+// This is a wrapper function around echo
+function echoit($string)
+{
+ echo $string;
+}
+
$func = 'foo';
-$func();
+$func(); // This calls foo()
+
$func = 'bar';
-$func('test');
+$func('test'); // This calls bar()
+
+$func = 'echoit';
+$func('test'); // This calls echoit()
+?>
+]]>
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ You can also call an objects method by using the variable functions
+ feature.
+ <example>
+ <title>Variable method example</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+class Foo
+{
+ function Var()
+ {
+ $name = 'Bar';
+ $this->$name(); // This calls the Bar() method
+ }
+
+ function Bar()
+ {
+ echo "This is Bar";
+ }
+}
+
+$foo = new Foo();
+$funcname = "Var";
+$foo->$varname(); // This calls $foo->Var()
+
?>
]]>
</programlisting>
</example>
</para>
<para>
- See also <link linkend="language.variables.variable">
+ See also <function>call_user_func</function>,
+ <link linkend="language.variables.variable">
variable variables</link> and <function>function_exists</function>.
</para>
-
</sect1>
-
</chapter>
<!-- Keep this comment at the end of the file
--
PHP Documentation Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php