首页 > php教程 > php手册 > 正文

php 中引用的应用

php中文网
发布: 2016-06-21 08:47:04
原创
1335人浏览过

<?php 

// http://blog.csdn.net/samxx8/article/details/37564103
/**
在PHP 中引用的意思是:不同的名字访问同一个变量内容.
(1) 变量之间的引用: 

$a = 10 ; $b =$a ;  // 此时$b和$a所指向的是同一存储地址 ,如果$a = 11 ; 则zend会开辟一个新的单元从来是的$a = 11 ; $b 还是原来的地址

$a = 10 ; $b =&$a ; // 此时$b 就是$a的别名,比如这个人叫小张,大名叫张三一样,如果 $a = 11 ; $b 也会跟着变 

*/
 
 
$a="ABC"; 
$b =&$a; 
echo $a;//这里输出:ABC 
echo $b;//这里输出:ABC 
$b="EFG"; 
echo $a;//这里$a的值变为EFG 所以输出EFG echo $b;//这里输出EFG 

// (2) 函数的传址调用(这里使用引用的意义在于,对于大数组节省内存空间)

function conTest(&$p_vale){
	 $p_vale = $p_vale *2 ; 
}

$value_1 =  1; 
echo $value_1; // 1 
conTest($value_1);
//  相当于变量的别名
echo $value_1 ; // 2 

//(3) 函数的引用

 function &conFuncTest(){ 
    static $b=0;//申明一个静态变量 
    $b=$b+1; 
    echo $b; 
    return $b; }
echo '函数的引用<br/>' ;
$a=conFuncTest();//这条语句会输出 $b的值 为1 
$a=5; $a=conFuncTest();//这条语句会输出 $b的值 为2
$a=&conFuncTest();//这条语句会输出 $b的值 为3 

// 此时相当于$a = &$b ;  
$a=5;
// 此时 $b是$a的别名 $b = 5; 
$a=conFuncTest();
//这条语句会输出 $b的值 为6

//(4) 对象的引用,对象的引用也是为了节省空间 

class object{
	
	public  $value = 'Hello world'; 
	
	// 如果想要clone则不让克隆 
	public  function __clone(){
		$this->value = 'not clone'; 
	}
}


$oBject_a = new object; 
$oBject_b = $oBject_a; 
// 上面等效于 $oBject_b = &$oBject_a; 
echo $oBject_a->value;//这里输出ABC 
// 修改对象a的值,会影响b的值,因为$b 是$a的引用 
$oBject_a->value = 'not hello';
echo $oBject_b->value;//这里输出not hello

// 如果不想影响对象a的值,可以使用魔术方法 __clone


$obj2 = clone $oBject_a; 

echo  $obj2->value;

//(5) 变量销毁 


$a = 11 ; $b =&$a ; unset($a);  // 此时 $b = 11;  
// 相当于 


 function quoteTest(){ 
 global $var ; 
 //相当于 $var = &$GLOBALS['var']; 
 unset($var);
 //删除只是删除引用,而引用的内容还存在,同上这并不意味着变量内容被销毁了
 }
 $var=1;
 quoteTest();
 echo $var; //  
 
 
 
 
 
 
echo $wlt = 111; 
print_r($GLOBALS); 

unset($wlt) ; 

print_r($GLOBALS); 


登录后复制



PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号