php 方法function的引用

2021-08-22 00:05:58 字數 1427 閱讀 5541

php的引用(就是在變數或者函式、物件等前面加上&符號)

1.變數的引用

php 的引用允許你用兩個變數來指向同乙個內容

<?php

$a = 'abc';

$b = &$a;

var_dump($a,$b);//均為'abc'

$b = 123;

var_dump($a,$b);//均為123

2.函式的引用傳遞(傳址呼叫)

<?php

function test(&$a)

$b = 1;

test($b);

var_dump($b);//101

這裡$b傳遞給函式的其實是$b的變數內容所處的記憶體位址,通過在函式裡改變$a的值 就可以改變$b的值

注意: 

上面的「 test($b); 」 中的$b前面不要加 & 符號,但是在函式「call_user_func_array」中,若要引用傳參,就得需要 & 符號

<?php

function test(&$a)

$b = 1;

call_user_func_array('test',array(&$b));

var_dump($b);//11

3.函式的引用返回

function &test()

$a=test();//這條語句會輸出 $b的值 為1

$a=5;

$a=test();//這條語句會輸出 $b的值 為2

$a=&test();//這條語句會輸出 $b的值 為3

$a=5;

$a=test();//這條語句會輸出 $b的值 為6

通過這種方式$a=test();得到的其實不是函式的引用返回,這跟普通的函式呼叫沒有區別。$a=test()方式呼叫函式,只是將函式的值賦給$a而已,而$a做任何改變都不會影響到函式中的$b而通過$a=&test()方式呼叫函式呢, 他的作用是將return $b中的$b變數的記憶體位址與$a變數的記憶體位址指向了同乙個地方。
class talker

public function out()

}$aa = new talker();

$d = &$aa->get();

$aa->out();

$d = 'how';

$aa->out();

$d = 'are';

$aa->out();

$d = 'you';

$aa->out();

//輸出為hihowareyou

php學習之function的用法

1,申明函式 在php中,定義函式的方法同其他程式語言幾乎一樣.下面是php申明函式的語法結構 複製 如下 function function name argument1,argument2程式設計客棧,argument3,argumentn 以上語法結構中,關鍵字的含義如下.1 function...

Function 函式 方法 物件

function 方法名稱 形式引數列表 var 方法名 function 形式引數列表 方法定義是,形參的型別不用寫,返回值型別也不寫。方法是乙個物件,如果定義名稱相同的方法,會覆蓋 在js中,方法的呼叫只與方法的名稱有關,和引數列表無關 在方法宣告中有乙個隱藏的內建物件 陣列 arguments...

php實用總匯之function

防止表單重複提交 防止表單重複提交 param string check str param int grap time msec 毫秒 return bool false 沒有重複 true 重複提交 function duplicate form submit check str,subtime...