php变量引用赋值一些知识

WBOY
Freigeben: 2016-07-28 08:26:12
Original
1267 Leute haben es durchsucht

手册上的解释是:简单的引用(换言之,“成为其别名” 或者 “指向”)了原始变量。改动新的变量将影响到原始变量,反之亦然。
我理解决引用相当一个人取了两个名字,无论叫个名字都是这个人。
以下两例子结果都在一样的。删除或修改都会影响到另外一个变量的值。

<code><?php <span>$foo = <span>'Bob'</span>;              <span>//</span> 将 <span>'Bob'</span> 赋给 <span>$foo</span><span>$bar</span> = &<span>$foo</span>;              <span>//</span> 通过 <span>$bar</span> 引用 <span>$foo</span><span>$bar</span> = <span>"My name is $bar"</span>;  <span>//</span> 修改 <span>$bar</span> 变量
echo <span>$bar</span>;
echo <span>$foo</span>;                 <span>//</span><span>$foo</span> 的值也被修改
?>


<?php <span>$foo = <span>'Bob'</span>;              <span>//</span> 将 <span>'Bob'</span> 赋给 <span>$foo</span><span>$bar</span> = &<span>$foo</span>;              <span>//</span> 通过 <span>$bar</span> 引用 <span>$foo</span><span>$foo</span> = <span>"My name is $bar"</span>;  <span>//</span> 修改 <span>$foo</span> 变量
echo <span>$bar</span>,<span>"\n"</span>;
echo <span>$foo</span>;                 <span>//</span><span>$foo</span> 的值也被修改
?></code>
Nach dem Login kopieren

删除引用时,无论是删除ba结果都没会影响到另一个变量。只是相当于删除一个名称,不会影响到变量本身。

<code><?php <span>$a = <span>0</span>;
<span>$b</span> = &<span>$a</span>;
  //  <span>echo</span><span>$a</span>; //<span>0</span>
   // <span>unset</span>(<span>$b</span>); // <span>unset</span><span>$b</span><span>unset</span>(<span>$a</span>); // <span>unset</span><span>$b</span><span>echo</span><span>$b</span>; //<span>0</span> it<span>'s OK</span></code>
Nach dem Login kopieren

当一个变量先后引用两个变量时,把第一次引用的变量,修改成第二次引用的变量。第一次引用没有关系,互相不会影响。

<code><span><span><?php </span><span>$a</span> = <span>"hihaha"</span>;
<span>$b</span> = &<span>$a</span>;
<span>$c</span> = <span>"eita"</span>;
<span>$b</span> = &<span>$c</span>;
<span>echo</span><span>$b</span>; <span>// shows "hihaha"</span></span></span></code>
Nach dem Login kopieren

函数的传址调用传址调用,执行完,相当于直接改变引用的变量。这里bb的变量内容所处的内存地址,通过在函数里改变ab的值了

<code><span><span>function</span><span>test</span><span>( &<span>$a</span> )</span>
{</span><span>$a</span> += <span>10</span>;
  <span>return</span><span>$a</span>;
}
<span>$b</span> = <span>1</span>;

test(<span>$b</span>);

<span>echo</span><span>$b</span>;<span>//输出11</span></code>
Nach dem Login kopieren

函数的引用返回

<code>function &test2()
{
    <span>$b</span>  = <span>0</span>;<span>//</span>申明一个静态变量
    <span>$b</span>  =   <span>$b</span>+<span>1</span>;
    <span>return</span><span>$b</span>;
}

<span>$a</span> = test2();<span>//</span>这条语句会输出 <span>$b</span>的值 为1
var_dump(<span>$a</span>);

<span>$a</span> = test2();<span>//</span>这条语句会输出 <span>$b</span>的值 为<span>2</span>
var_dump(<span>$a</span>);
<span>$a</span> = & test2();<span>//</span>这条语句会输出 <span>$b</span>的值 为<span>3</span>
var_dump(<span>$a</span>);
<span>$a</span> = <span>5</span>;
<span>$a</span> = test2();<span>//</span>这条语句会输出 <span>$b</span>的值 为<span>6</span>
var_dump(<span>$a</span>);</code>
Nach dem Login kopieren
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

以上就介绍了 php变量引用赋值一些知识,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage