在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當前位置:雨林木風下載站 > 網頁設計教程 > 詳細頁面

PHP引用是什么?php中引用的介紹(代碼案例)

PHP引用是什么?php中引用的介紹(代碼案例)

更新時間:2025-12-04 文章作者:未知 信息來源:網絡 閱讀次數:

網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立...
網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立在超文本基礎之上的。超級文本標記語言之所以稱為超文本標記語言,是因為文本中包含了所謂“超級鏈接”點。
本篇文章給大家帶來的內容是關于PHP引用是什么?php中引用的介紹(代碼實例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

1. 什么是引用

在 PHP 中引用是指用不同的名字訪問同一個變量內容。
PHP 中的變量名和變量內容是不一樣的, 因此同樣的內容可以有不同的名字。
最接近的比喻是 Unix 的文件名和文件本身——變量名是目錄條目,而變量內容則是文件本身。引用可以被看作是 Unix 文件系統中的硬鏈接。

PHP 中的引用并不像 C 的指針:例如你不能對他們做指針運算。引用并不是實際的內存地址,而是符號表別名。

2. 引用的特性

PHP 的引用允許用兩個變量來指向同一個內容。

$a =& $b;

這意味著 $a 和 $b 指向了同一個變量。

$a 和 $b 在這里是完全相同的,這并不是 $a 指向了 $b 或者相反,而是 $a 和 $b 指向了同一個地方。

如果具有引用的數組被復制,其值不會解除引用。將數組傳值給函數也是如此。

$a = 'a';

$arr1 = [
    'a' => $a,
    'b' => &$a, // $arr1['b'] 與 $a 指向同一個變量
];

// 將 $arr1 傳值賦值給 $arr2
$arr2 = $arr1;

print_r($arr2); // $arr2 的值為 ['a' => 'a', 'b' => 'a']

// 修改 $a 的值為 'b'
$a = 'b';

print_r($arr2); // $arr2 的值為 ['a' => 'a', 'b' => 'b']


function foo($arr){
    // 將 $arr['b'] 的值改為 'c';
    $arr['b'] = 'c';
}

echo $a; // $a 的值為 'b'

// 將 $arr1 傳入函數
foo($arr1);

echo $a; // $a 的值為 'c'

如果對一個未定義的變量進行引用賦值、引用參數傳遞或引用返回,則會自動創建該變量。

// 定義函數 foo(),通過引用傳遞參數
function foo(&$var) { }

foo($a); // 創建變量 $a,值為 NULL
var_dump($a); // NULL

foo($b['b']); // 創建數組 $b = ['b' => NULL]
var_dump(array_key_exists('b', $b)); // bool(true)

$c = new StdClass;
foo($c->d); // 創建對象屬性 $c->d = NULL
var_dump(property_exists($c, 'd')); // bool(true)

如果在一個函數內部給一個聲明為 global 的變量賦于一個引用,該引用只在函數內部可見。可以通過使用 $GLOBALS 數組避免這一點。

$var1 = 'var1';
$var2 = 'var2';

function global_references($use_globals)
{
    global $var1, $var2;
    if (!$use_globals) {
        $var2 = & $var1; // $var2 只在函數內部可見
    } else {
        $GLOBALS["var2"] = & $var1; // $GLOBALS["var2"]在全球范圍內也可見
    }
}

global_references(false);
echo "var2 is set to '$var2'\n"; // var2 is set to 'var2'
global_references(true);
echo "var2 is set to '$var2'\n"; // var2 is set to 'var1'

可以把 global $var; 當成是 $var =& $GLOBALS['var']; 的簡寫。從而將其它引用賦給 $var 只改變了本地變量的引用。

在 foreach 語句中給一個具有引用的變量賦值,被引用的對象也被改變。

$ref = 0;
$row = & $ref;
foreach ([1, 2, 3] as $row) {
    // do something
}
echo $ref; // 3 - 遍歷數組的最后一個元素

3. 引用傳遞

可以將一個變量通過引用傳遞給函數,這樣該函數就可以修改其參數的值。

function foo(&$var)
{
    $var++;
}

$a=5;
foo($a);

echo $a; // 6

注意在函數調用時沒有引用符號——只有函數定義中有。光是函數定義就足夠使參數通過引用來正確傳遞了。

可以通過引用傳遞的內容:

  • 變量

  • 從函數中返回的引用

通過引用傳遞變量

function foo(&$var)
{
    $var++;
}

$a=5;
foo($a);

echo $a; // 6

通過引用傳遞從函數中返回的引用

function foo(&$var)
{
    $var++;
    echo $var; // 6
}

function &bar()
{
    $a = 5;
    return $a;
}

foo(bar());

不能通過引用傳遞函數、表達式、值等

function foo(&$var)
{
    $var++;
}

function bar() // 注意,這個函數不返回引用
{
    $a = 5;
    return $a;
}

foo(bar()); // 自 PHP 5.0.5 起導致致命錯誤,自 PHP 5.1.1 起導致嚴格模式錯誤,自 PHP 7.0 起導致 notice 信息

foo($a = 5); // 表達式,不是變量。PHP Notice:  Only variables should be passed by reference

foo(5); // PHP Fatal error:  Only variables can be passed by reference

4. 引用返回

當你想要使用一個函數來找到一個引用應該被綁定的變量時,可以使用引用返回。
不要用返回引用來增加性能,引擎足夠聰明,可以自己進行優化。僅在有合理的技術原因時才返回引用!

class Foo {
    public $value = 42;

    public function &getValue() {
        return $this->value;
    }
}

$foo = new Foo;
// $myValue 是 $obj->value 的引用.
$myValue = &$foo->getValue();
// 將 $foo->value 修改為 2
$foo->value = 2;
echo $myValue;  // 2
與參數引用傳遞不同,引用返回必須在兩個地方都用 & 符號 —— 指出返回的是一個引用,而不是通常的一個拷貝,同樣也指出 $myValue 是作為引用的綁定,而不是通常的賦值。

引用返回只能返回變量。如果試圖這樣從函數返回引用:return intval($this->value);,將會報錯,因為函數在試圖返回一個表達式的結果而不是一個引用的變量。只能從函數返回引用變量——沒別的方法。

class Foo {
    public $value = 42;

    public function &getValue() {
        return intval($this->value); // PHP Notice:  Only variable references should be returned by reference
    }
}

$foo = new Foo;
// $myValue 是 $obj->value 的引用.
$myValue = &$foo->getValue();

5. 取消引用

當 unset 一個引用,只是斷開了變量名和變量內容之間的綁定。這并不意味著變量內容被銷毀了。

$a = 1;
$b = & $a;
unset($a);

echo $b; // 1

6. 發現

許多 PHP 的語法結構是通過引用機制實現的,所以上述有關引用綁定的一切也都適用于這些結構。

global 引用

當用 global $var 聲明一個變量時實際上是在函數內部建立了一個到全局變量的引用。也就是說這樣做的效果是相同的:

global $var;

$var =& $GLOBALS["var"];

這意味著,unset $var 不會 unset 掉全局變量 $GLOBALS["var"]。

$this

在一個對象的方法中,$this 永遠是調用它的對象的引用。

以上就是PHP引用是什么?php中引用的介紹(代碼實例)的詳細內容,更多請關注php中文網其它相關文章!


網站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產和維護的網站。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 亚洲自偷自拍熟女另类| 国产精品人人爽人人爽| 色悠悠久久综合网| 黄色动漫在线免费看| 成人免费看片'免费看| 免费的av在线| 久久久久久久9| 精品国偷自产一区二区三区| 激情六月天婷婷| 国产一级大片免费看| 欧美这里只有精品| 无码中文字幕色专区| 草草久久久无码国产专区| 久久久久久久久久久福利| 97超碰青青草| 精品久久久99| 91成人在线视频观看| 国产高清www| 国产成人精品无码播放| 色噜噜狠狠永久免费| 成年人网站av| 国产成人永久免费视频| 黄色网页免费在线观看| 天天爽天天爽夜夜爽| www.午夜色| 免费无码不卡视频在线观看| 日本成人在线免费视频| 精产国品一二三区| 国产精品沙发午睡系列| 男女视频在线看| 欧美a级黄色大片| 69堂免费视频| 麻豆中文字幕在线观看| 800av在线免费观看| 天天色综合天天色| 免费人成在线观看视频播放| 哪个网站能看毛片| 美女黄色片网站| jizz欧美激情18| 无码粉嫩虎白一线天在线观看 | 熟妇熟女乱妇乱女网站| 免费看欧美黑人毛片| 黑森林精品导航| 黄网站欧美内射| 中文字幕乱码免费| 日韩在线一区视频| 亚洲熟妇av一区二区三区| 久久久久久久免费视频| 黄色片在线免费| www一区二区www免费| 中文字幕第50页| 在线视频观看一区二区| 国产熟人av一二三区| 日韩伦理在线免费观看| 中文字幕一区久久| 992kp快乐看片永久免费网址| 久久久久99精品成人片| 992tv成人免费观看| 亚洲怡红院在线| 97超碰人人爽| 亚洲77777| 国产三级三级看三级| 精品免费国产一区二区| 国产精品三级一区二区| 欧美少妇在线观看| 四虎4hu永久免费入口| 永久免费黄色片| 亚洲AV无码成人精品一区| www.污污视频| 91aaa精品| 桥本有菜av在线| 看一级黄色录像| 国产在线无码精品| 亚洲国产精品无码观看久久| 肉大捧一出免费观看网站在线播放| 国产传媒免费观看| 永久免费看av| 国产婷婷一区二区三区| 国产精品333| 成人一区二区三| 999久久久精品视频| 国产999免费视频| 337p亚洲精品色噜噜狠狠p| 超碰人人爱人人| 国产日韩一区二区在线| 9l视频白拍9色9l视频| 国产a级片免费看| 日韩xxxx视频| 波多野结衣xxxx| 亚洲爆乳无码精品aaa片蜜桃| 国内少妇毛片视频| 日韩av播放器| 在线免费黄色小视频| 国产情侣第一页| 日韩av片网站| 毛片av在线播放| 三级a三级三级三级a十八发禁止| av免费一区二区| 国产伦精品一区二区三区四区视频_ | 国产人妻互换一区二区| 日韩av新片网| 性久久久久久久久久久久久久| japanese在线播放| 熟妇人妻无乱码中文字幕真矢织江 | 在线观看成人免费| 精品国产成人av在线免| 97超碰成人在线| 久久精品国产精品亚洲色婷婷| 色一情一区二区| 精品一区二区中文字幕| 国产卡一卡二在线| 久久久精品三级| 人妻少妇精品久久| 97人人模人人爽人人澡| 日本美女高潮视频| 国产一级爱c视频| 九九久久九九久久| 精品综合久久久久| 狠狠热免费视频| 激情六月丁香婷婷| 免费不卡av在线| 久操手机在线视频| 色爽爽爽爽爽爽爽爽| 国产精品一区二区小说| 日韩av播放器| 久久精品视频91| 六月激情综合网| 精品国产免费av| 久久久久久久久久久视频| 乱熟女高潮一区二区在线| 久久视频免费在线| 一本—道久久a久久精品蜜桃| 一个色综合久久| 亚洲18在线看污www麻豆| 57pao国产成永久免费视频| 污污的网站18| 日韩av在线中文| 亚洲精品第三页| 在线观看18视频网站| 天天操天天干天天玩| 国产亚洲精品久久久久久久| 久久免费一级片| 黄页免费在线观看视频| 97xxxxx| 91热视频在线观看| 日韩精品第1页| 国产黄页在线观看| 一区二区三区国产免费| 亚洲黄色av片| 欧美大黑帍在线播放| 精品久久一二三| 三级在线免费看| 免费观看黄色的网站| 69sex久久精品国产麻豆| 一本大道熟女人妻中文字幕在线| 免费观看成人网| 日日噜噜夜夜狠狠久久丁香五月| 日韩精品一区在线视频| 熟女人妇 成熟妇女系列视频| 免费看污污网站| 狠狠精品干练久久久无码中文字幕| 欧美另类videos| 已婚少妇美妙人妻系列| 日韩av片免费观看| 成人免费视频91| 第一区免费在线观看| 国产在线观看欧美| 久久精品无码中文字幕| 免费无遮挡无码永久视频| 国产l精品国产亚洲区久久| mm131国产精品| 久久久久免费看黄a片app| 一本色道久久亚洲综合精品蜜桃| 四虎精品欧美一区二区免费| 草草草在线视频| 日本人妻伦在线中文字幕| www日韩在线观看| 成人一对一视频| 男女爽爽爽视频| 鲁一鲁一鲁一鲁一澡| 国产大片一区二区三区| 好男人www社区| 美女av免费在线观看| 亚洲av综合色区| √天堂资源在线| 日本新janpanese乱熟| 国产极品在线视频| 黄网站色视频免费观看| 91香蕉视频网址| 中文字幕一区二区在线观看视频 | 天天成人综合网| www.久久91| 天天插天天操天天射| 五月婷婷深爱五月| 毛片av免费在线观看| 欧美精品一区免费| 久久国产乱子伦免费精品| 国产一级爱c视频| 91成人在线观看喷潮教学| 欧美大黑帍在线播放|