For Programmers: Free Programming Magazines  


Home > Archive > PHP Documentation > January 2005 > cvs: phpdoc /en/language oop.xml









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author cvs: phpdoc /en/language oop.xml
Sean Coates

2005-01-29, 3:55 am

sean Sat Jan 29 01:19:15 2005 EDT

Modified files:
/phpdoc/en/language oop.xml
Log:
document seemingly-odd $this behaviour

http://cvs.php.net/diff.php/phpdoc/...57&r2=1.58&ty=u
Index: phpdoc/en/language/oop.xml
diff -u phpdoc/en/language/oop.xml:1.57 phpdoc/en/language/oop.xml:1.58
--- phpdoc/en/language/oop.xml:1.57 Sun Jan 23 15:04:35 2005
+++ phpdoc/en/language/oop.xml Sat Jan 29 01:19:14 2005
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.57 $ -->
+<!-- $Revision: 1.58 $ -->
<chapter id="language.oop">
<title>Classes and Objects (PHP 4)</title>

@@ -246,6 +246,62 @@

<note>
<para>
+ The <varname>$this</varname> pseudo-variable is not usually defined if
+ the method in which it is hosted is called statically. This is not,
+ however, a strict rule: <varname>$this</varname> is defined if a method is
+ called statically from within another object, and the value of
+ <varname>$this</varname> is that of the calling object. This is
+ illustrated in the following example:
+ <informalexample>
+ <programlisting role="php">
+<![CDATA[
+<?php
+class A
+{
+ function foo()
+ {
+ if (isset($this)) {
+ echo '$this is defined (';
+ echo get_class($this);
+ echo ")\n";
+ } else {
+ echo "\$this is not defined.\n";
+ }
+ }
+}
+
+class B
+{
+ function bar()
+ {
+ A::foo();
+ }
+}
+
+$a = new A();
+$a->foo();
+A::foo();
+$b = new B();
+$b->bar();
+B::bar();
+?>
+]]>
+ </programlisting>
+ &example.outputs;
+ <screen>
+<![CDATA[
+$this is defined (a)
+$this is not defined.
+$this is defined (b)
+$this is not defined.
+]]>
+ </screen>
+ </informalexample>
+ </para>
+ </note>
+
+ <note>
+ <para>
There are some nice functions to handle classes and objects. You might want
to take a look at the <link linkend="ref.classobj">Class/Object
Functions</link>.
Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com