php 中引用的應用
' ;
$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);