⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 language.oop.html

📁 php的帮助文档,涉及到PHP的案例和基本语法,以及实际应用内容
💻 HTML
📖 第 1 页 / 共 2 页
字号:
   </p>    <div class="informalexample">    <div class="example-contents"><div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$cart&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">Cart</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$cart</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">add_item</span><span style="color: #007700">(</span><span style="color: #DD0000">"10"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$another_cart&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">Cart</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$another_cart</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">add_item</span><span style="color: #007700">(</span><span style="color: #DD0000">"0815"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">3</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>    </div>   </div>    <p class="para">    This creates the objects <var class="varname">$cart</var> and    <var class="varname">$another_cart</var>, both of the class Cart. The function    add_item() of the <var class="varname">$cart</var> object is being called to add 1    item of article number 10 to the <var class="varname">$cart</var>. 3 items of    article number 0815 are being added to <var class="varname">$another_cart</var>.   </p>      <p class="para">    Both, <var class="varname">$cart</var> and <var class="varname">$another_cart</var>, have    functions add_item(), remove_item() and a variable items. These are    distinct functions and variables. You can think of the objects as    something similar to directories in a filesystem. In a filesystem you can    have two different files <var class="filename">README.TXT</var>, as long as they    are in different directories.  Just like with directories where you&#039;ll have    to type the full pathname in order to reach each file from the toplevel    directory, you have to specify the complete name of the function you want to    call: in PHP terms, the toplevel directory would be the global namespace,    and the pathname separator would be <i>-&gt;</i>.  Thus, the    names <var class="varname">$cart->items</var> and    <var class="varname">$another_cart->items</var> name two different variables.    Note that the variable is named <var class="varname">$cart->items</var>, not    <var class="varname">$cart->$items</var>, that is, a variable name in PHP has    only a single dollar sign.   </p>   <div class="informalexample">    <div class="example-contents"><div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">//&nbsp;correct,&nbsp;single&nbsp;$<br /></span><span style="color: #0000BB">$cart</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">items&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #DD0000">"10"&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">);&nbsp;<br /><br /></span><span style="color: #FF8000">//&nbsp;invalid,&nbsp;because&nbsp;$cart-&gt;$items&nbsp;becomes&nbsp;$cart-&gt;""<br /></span><span style="color: #0000BB">$cart</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">$items&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #DD0000">"10"&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">//&nbsp;correct,&nbsp;but&nbsp;may&nbsp;or&nbsp;may&nbsp;not&nbsp;be&nbsp;what&nbsp;was&nbsp;intended:<br />//&nbsp;$cart-&gt;$myvar&nbsp;becomes&nbsp;$cart-&gt;items<br /></span><span style="color: #0000BB">$myvar&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'items'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$cart</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">$myvar&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #DD0000">"10"&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">);&nbsp;&nbsp;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>    </div>   </div>   <p class="para">    Within a class definition, you do not know under which name the object    will be accessible in your program: at the time the Cart class was    written, it was unknown whether the object would be named    <var class="varname">$cart</var>, <var class="varname">$another_cart</var>, or something    else later. Thus,    you cannot write <var class="varname">$cart->items</var> within the Cart class    itself. Instead, in order to be able to access its own functions and    variables from within a class, one can use the pseudo-variable    <var class="varname">$this</var> which can be read as &#039;my own&#039; or &#039;current    object&#039;. Thus, &#039;<var class="varname">$this->items[$artnr]</var> +=    <var class="varname">$num</var>&#039; can be read as &#039;add <var class="varname">$num</var> to    the <var class="varname">$artnr</var> counter of my own items array&#039; or &#039;add    <var class="varname">$num</var> to the <var class="varname">$artnr</var> counter of the    items array within the current object&#039;.   </p>   <blockquote><p><b class="note">Note</b>:          The <var class="varname">$this</var> pseudo-variable is not usually defined if     the method in which it is hosted is called statically. This is not,     however, a strict rule: <var class="varname">$this</var> is defined if a method is     called statically from within another object. In this case, the value of     <var class="varname">$this</var> is that of the calling object. This is     illustrated in the following example:     <div class="informalexample">      <div class="example-contents"><div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">class&nbsp;</span><span style="color: #0000BB">A<br /></span><span style="color: #007700">{<br />&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;</span><span style="color: #0000BB">foo</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(isset(</span><span style="color: #0000BB">$this</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">'$this&nbsp;is&nbsp;defined&nbsp;('</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">get_class</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">")\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"\$this&nbsp;is&nbsp;not&nbsp;defined.\n"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br />class&nbsp;</span><span style="color: #0000BB">B<br /></span><span style="color: #007700">{<br />&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;</span><span style="color: #0000BB">bar</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">A</span><span style="color: #007700">::</span><span style="color: #0000BB">foo</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br /></span><span style="color: #0000BB">$a&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">A</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$a</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">foo</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">A</span><span style="color: #007700">::</span><span style="color: #0000BB">foo</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$b&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">B</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$b</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">bar</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">B</span><span style="color: #007700">::</span><span style="color: #0000BB">bar</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>           </div>      <p class="para">The above example will output:</p>      <div class="example-contents"><pre><div class="cdata"><pre>$this is defined (a)$this is not defined.$this is defined (b)$this is not defined.</pre></div>      </pre></div>     </div>    <br />   </p></blockquote>   <blockquote><p><b class="note">Note</b>:         There are some nice functions to handle classes and objects. You might want    to take a look at the <a href="ref.classobj.html" class="link">Class/Object    Functions</a>.    <br />   </p></blockquote>  </div>                </div><hr /><div style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="functions.internal.html">Internal (built-in) functions</a></div> <div class="next" style="text-align: right; float: right;"><a href="keyword.extends.html">extends</a></div> <div class="up"><a href="langref.html">Language Reference</a></div> <div class="home"><a href="index.html">PHP Manual</a></div></div></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -