xianyu_phper 发表于 2011-12-21 08:44

php引用的解释:引用传递和引用返回

<div id="codeText" class="codeText"><ol style="margin:0 1px 0 0;padding:5px 0;" start="1" class="dp-css"><li><span style="color:#000000;"><span style="color:#FF0000;">class</span> testReference<br></span></li><li>
<span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;static $testvalue <span style="color:#0000CC;">=</span> 1<span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">/</span><span style="color:#0000CC;">/</span>引用传递<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;public function funcRef<span style="color:#0000CC;">(</span><span style="color:#0000CC;">&amp;</span><span style="color:#0000CC;">$</span>val<span style="color:#0000CC;">)</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $val<span style="color:#0000CC;">+</span><span style="color:#0000CC;">+</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">/</span><span style="color:#0000CC;">/</span>引用返回<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;public function <span style="color:#0000CC;">&amp;</span>funcRef2<span style="color:#0000CC;">(</span><span style="color:#0000CC;">)</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return self<span style="color:#0000CC;">:</span><span style="color:#0000CC;">:</span><span style="color:#0000CC;">$</span>testvalue<span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span><br></li><li>
<span style="color:#0000CC;">}</span><br></li><li>
<br></li><li>
$testr <span style="color:#0000CC;">=</span> new testReference<span style="color:#0000CC;">(</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
<br></li><li>
<span style="color:#0000CC;">/</span><span style="color:#0000CC;">/</span>测试引用传递<br></li><li>
$val1 <span style="color:#0000CC;">=</span> 1<span style="color:#0000CC;">;</span><br></li><li>
$testr<span style="color:#0000CC;">-</span><span style="color:#0000CC;">&gt;</span>funcRef<span style="color:#0000CC;">(</span><span style="color:#0000CC;">$</span>val1<span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
echo $val1<span style="color:#0000CC;">.</span><span style="color:#FF00FF;">"&lt;br/&gt;"</span><span style="color:#0000CC;">;</span><span style="color:#0000CC;">/</span><span style="color:#0000CC;">/</span>把变量 引用传递给函数。函数可以直接改变该变量的值输入2<br></li><li>
<br></li><li>
<span style="color:#0000CC;">/</span><span style="color:#0000CC;">/</span>测试引用返回<br></li><li>
$val2 <span style="color:#0000CC;">=</span> <span style="color:#0000CC;">&amp;</span><span style="color:#0000CC;">$</span>testr<span style="color:#0000CC;">-</span><span style="color:#0000CC;">&gt;</span>funcRef2<span style="color:#0000CC;">(</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><span style="color:#0000CC;">/</span><span style="color:#0000CC;">/</span>调用引用返回的函数里需加上<span style="color:#0000CC;">&amp;</span>符号<br></li><li>
echo $val2<span style="color:#0000CC;">.</span><span style="color:#FF00FF;">"&lt;br/&gt;"</span><span style="color:#0000CC;">;</span><span style="color:#0000CC;">/</span><span style="color:#0000CC;">/</span>引用返回得到的变量$val2就是对类成员变量$testvalue的引用<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">/</span><span style="color:#0000CC;">/</span>所以,$val2和$testvalue指向的是同一变量 <span style="color:#0000CC;">,</span>输出的值是1<br></li><li>
testReference<span style="color:#0000CC;">:</span><span style="color:#0000CC;">:</span><span style="color:#0000CC;">$</span>testvalue<span style="color:#0000CC;">+</span><span style="color:#0000CC;">+</span><span style="color:#0000CC;">;</span><br></li><li>
echo $val2<span style="color:#0000CC;">;</span><span style="color:#0000CC;">/</span><span style="color:#0000CC;">/</span><span style="color:#0000CC;">$</span>val2<span style="color:#0000CC;">,</span><span style="color:#0000CC;">$</span>testvalue指向对一变量,所以变量$testvalue就是改变$val2 输入2</li></ol><br><br><br>原文出处:<a href="http://www.54xfish.com/php%E5%BC%95%E7%94%A8%E7%9A%84%E8%A7%A3%E9%87%8A%E5%BC%95%E7%94%A8%E4%BC%A0%E9%80%92%E5%92%8C%E5%BC%95%E7%94%A8%E8%BF%94%E5%9B%9E/" target="_blank">php引用的解释:引用传递和引用返回</a><br></div>
页: [1]
查看完整版本: php引用的解释:引用传递和引用返回