導航:首頁 > 編程語言 > phpfunctionuse

phpfunctionuse

發布時間:2023-03-10 19:38:08

『壹』 php里如何獲取函數的調用者名稱

先放上來別人的例子吧:
call_user_func函數類似於一種特別的調用函數的方法,使用方法如下:

復制代碼 代碼如下:

function a($b,$c)
{
echo $b;
echo $c;
}
call_user_func('a', "111","222");
call_user_func('a', "333","444");
//顯示 111 222 333 444
?>

調用類內部的方法比較奇怪,居然用的是array,不知道開發者是如何考慮的,當然省去了new,也是滿有新意的:

復制代碼 代碼如下:

class a {
function b($c)
{
echo $c;
}
}
call_user_func(array("a", "b"),"111");
//顯示 111
?>

call_user_func_array函數和call_user_func很相似,只不過是換了一種方式傳遞了參數,讓參數的結構更清晰:

復制代碼 代碼如下:

function a($b, $c)
{
echo $b;
echo $c;

}
call_user_func_array('a', array("111", "222"));
//顯示 111 222
?>

call_user_func_array函數也可以調用類內部的方法的

復制代碼 代碼如下:

Class ClassA
{

function bc($b, $c) {
$bc = $b + $c;
echo $bc;
}
}
call_user_func_array(array('ClassA','bc'), array("111", "222"));

//顯示 333
?>

call_user_func函數和call_user_func_array函數都支持引用,這讓他們和普通的函數調用更趨於功能一致:

復制代碼 代碼如下:

function a($b)
{
$b++;
}
$c = 0;
call_user_func('a', $c);
echo $c;//顯示 1
call_user_func_array('a', array($c));
echo $c;//顯示 2

另:call_user_func函數和call_user_func_array函數都支持引用。

復制代碼 代碼如下:

<?php
function increment(&$var)
{
$var++;
}
$a = 0;
call_user_func('increment', $a);
echo $a; // 0
call_user_func_array('increment', array(&$a)); // You can use this instead
echo $a; // 1
?>

『貳』 php匿名函數中的use有什麼用

php文檔中關於use的說明

所有支持命名空間的PHP版本支持三種別名或導入方式:為類名稱使用別名、為介面使用別名或為命名空間名稱使用別名。PHP5.6開始允許導入函數或常量或者為它們設置別名。
在PHP中,別名是通過操作符use來實現的.下面是一個使用所有可能的五種導入方式的例子:
Example#1使用use操作符導入/使用別名
<?php
namespacefoo;
useMyFullClassnameasAnother;

//下面的例子與useMyFullNSnameasNSname相同
useMyFullNSname;

//導入一個全局類
useArrayObject;

//importingafunction(PHP5.6+)
usefunctionMyFullfunctionName;

//aliasingafunction(PHP5.6+)
;

//importingaconstant(PHP5.6+)
useconstMyFullCONSTANT;

$obj=newnamespaceAnother;//實例化fooAnother對象
$obj=newAnother;//實例化MyFullClassname對象
NSnamesubnsfunc();//調用函數MyFullNSnamesubnsfunc
$a=newArrayObject(array(1));//實例化ArrayObject對象
//如果不使用"useArrayObject",則實例化一個fooArrayObject對象
func();//
echoCONSTANT;//
?>

『叄』 php調用自定義函數

&引用符號。
不加引用時候,你傳進去的$a被復制了一份,然後你在函數裡面改變$a實際上是改變復制的那個,原來的那個不變,退出函數後$a還是原來那個值。
加了引用符號後裡面的$a就是外面的$a的引用,修改了函數裡面的$a就等於修改了外面的$a。

『肆』 php 問題 unexpected T_FUNCTION

整理了一下格式,代碼沒有問題,三次輸出中第一個和第三個都能正常顯示,第二個會提示全局變數里沒有index v1,因為你的$v1是定義在function裡面的,所以提示沒有也是正確的。

如果還報錯就檢查一下各種括弧的匹配對不對,還不行就報一下PHP版本

functionfunc1(){
$v1=10;
$v2=20;
$func2=function()use($v1,&$v2){
$v1++;
$v2--;
var_mp($v1,$v2);
//11,19
var_mp($GLOBALS['v1']);
};
$func2();

var_mp($v1,$v2);
//10,19
}

『伍』 php 使用use 和直接傳參的區別

實際應用 1 : 在創建閉包時, 生成所use變數的快照, 下文再次調用閉包函數時, 快照變數不改變
$a = 5;

$b = function ($x) use ($a) {
$a += $x; echo $a;
};

$a = 10; // 這個變數被再次賦值, 但是在use語句中的'快照'是不會改變的

$b(100); // 輸出 : 105

實際應用 2 : 使用引用傳值, 生成所use變數的指針, 下文再次調用閉包函數時, 快照變數會改變(其實這樣做與直接傳參已經沒有區別, 所以這么做意義不大, 而且代碼可讀性降低)

$a = 5;

$b = function ($x) use (&$a) {
$a += $x; echo $a;
};

$a = 10; // 變數重新賦值, 上文中閉包所引用的變數值也被改變

$b(100); // 輸出 : 110

『陸』 php function括弧里(類名 變數名)這種寫法是什麼意思

php本來是弱類型語言,經過這幾年的發展,php也支持了類型判斷,比如可以聲明一個函數變數為

function test(int $a):int{}

對於類名,變數名這種寫法,是php5中引入的,這樣目的就是對參數進行限定,可以提前判斷出不符合類型的變數傳入。

依賴注入是一種設計模式,而它依賴的就是這個功能,通過注入不同的類來實現不同的功能。

『柒』 PHP匿名函數怎麼使用

這里的use實際上就是將全局的$message拷貝到局部函數中,所以很類似於global,不過和global不同的是:
use時:當你在函數中對$message更改的時候不會影響到全局的那個$message,也就是說使用use實際上是拷貝一份變數到函數中。
global時:正相反,在函數中對$message更改的時候會影響到全局的那個$message。我在後盾人視頻平台才看見教師講這個,沒想到就能幫到你,呵呵太有趣了

『捌』 php 函數內引用全局變數

<?php
$var1 = "Example variable";
$var2 = " ";

function global_references($use_globals)
{
global $var1, $var2;
if (!$use_globals) {
$var2 =& $var1; // visible only inside the function///???
} else {
$GLOBALS["var2"] =& $var1; // visible also in global context
}
}

global_references(false);//變數$var2賦值為對$var1的引用,但是它的值在函數外不可見,他是一個局部變數
echo "var2 is set to '$var2'\n<br>";
global_references(true);//將$var2注冊到全局變數數組中賦值為對變數$var1的引用,他是全局可見的
echo "var2 is set to '$var2'\n";
?>

閱讀全文

與phpfunctionuse相關的資料

熱點內容
海康攝像螢石雲伺服器 瀏覽:814
安卓手機怎麼改安卓版名 瀏覽:147
雅思聽力807詞彙pdf 瀏覽:897
黃豆私人加密 瀏覽:192
java分鍾轉換小時 瀏覽:245
易語言伺服器如何提高 瀏覽:591
網站主機伺服器地址查看 瀏覽:859
演算法學不會能當程序員嗎 瀏覽:119
程序員技術交流研究 瀏覽:814
javaresponse文件 瀏覽:734
linuxrar壓縮文件夾 瀏覽:218
魅藍手機連接不上伺服器怎麼回事 瀏覽:379
工行app怎麼改已綁定銀行卡 瀏覽:533
oppo晶元程序員 瀏覽:602
oppok3應用怎麼加密 瀏覽:327
電腦軟盤怎麼加密碼 瀏覽:815
伺服器光交換機有什麼用 瀏覽:708
app上怎麼拍蛙小俠 瀏覽:217
志高聊天app怎麼下載 瀏覽:635
郵政app怎麼不能掃付款碼 瀏覽:559