導航:首頁 > 編程語言 > php引用外部變數

php引用外部變數

發布時間:2024-07-16 12:44:14

php閉包函數怎麼使用外部變數

使用use關鍵詞引入變數即可,請看代碼:

<?php
functioncallFunc($callback){
returncall_user_func($callback);
}

$author='Zjmainstay';
echocallFunc(function()use($author){#這里
return"Theauthoris{$author}";
});

Ⅱ php 調用 其他文件變數

★ PHP變數是有作用域(指定的有效范圍)的:

  1. 函數內聲明的變數只對該函數有效,出了函數的范圍就會無效;

  2. 同理在函數以外聲明的變數在函數中訪問也是無效的;

  3. 函數內的變數跨函數訪問也是無效的。


★ 問題推測:

聽你上面說的情況,你的$username變數應該聲明在函數或者類里邊,然後從函數外訪問;或者聲明在函數外,但從函數中進行訪問了。


★ 解決方法:

函數中的變數要想讓其全局有效必須得在變數前面加global關鍵字聲明成全局變數才可以在函數以外訪問到;同理在函數外聲明的函數如果想要在函數中來訪問,也要使用global關鍵字來聲明為全局變數。


★關於php變數作用域的示範:

舉例有php文件b.php如下:

<?php

functionfunc1(){
global$a2;
$a1='vara1Infilebfunctionfunc1';
$a2='vara2Infilebfunctionfunc1';
}

?>


然後有php文件a.php如下:

<?php

error_reporting(0);//關閉錯誤報告
include('b.php');//引用b.php
$a3='vara3Infileaoutoffunction';
$a4='vara4Infileaoutoffunction';

functionfunc2(){
global$a5;
$a5='vara5Infileafunctionfunc2';
$a6='vara6Infileafunctionfunc2';
}

functionfunc3(){
echo'printvar$a1to$a6infunctionfunc3:<br>';
var_mp($a1);
var_mp($a2);
var_mp($a3);
var_mp($a4);
var_mp($a5);
var_mp($a6);
}

functionfunc4(){
echo'printvar$a1to$a6infunctionfunc4:<br>';
global$a1;
global$a2;
global$a3;
global$a4;
global$a5;
global$a6;
var_mp($a1);
var_mp($a2);
var_mp($a3);
var_mp($a4);
var_mp($a5);
var_mp($a6);
}

echo'printvar$a1$a2$a5$a6infilea:<br/>';
var_mp($a1);
var_mp($a2);
var_mp($a5);
var_mp($a6);
func3();
func4();

func1();
func2();

echo'printvar$a1$a2$a5$a6infilea(aftercallfunc1andfunc2):<br/>';
var_mp($a1);
var_mp($a2);
var_mp($a5);
var_mp($a6);
func3();
func4();

?>

執行a.php後就會輸出:

printvar$a1$a2$a5$a6infilea:<!--$a1$a2$a5$a6都被聲明在函數中,此時因為函數未被調用,所以都無法正確取值-->
null

null

null

null

printvar$a1to$a6infunctionfunc3:<!--$a1$a2$a5$a6同上,$a3和$a4因為在函數外聲明所以全部無法正確取值-->
null

null

null

null

null

null

printvar$a1to$a6infunctionfunc4:<!--$a1$a2$a3$a4同上,$a3和$a4用global聲明為全局了,所以可以正確取值-->
null

null

string'vara3Infileaoutoffunction'(length=32)

string'vara4Infileaoutoffunction'(length=32)

null

null

printvar$a1$a2$a5$a6infilea(aftercallfunc1andfunc2):<!--在執行func1和func2之後被關鍵字聲明為全局變數的$a2和$a5可以被正確取值-->
null

string'vara2Infilebfunctionfunc1'(length=31)

string'vara5Infileafunctionfunc2'(length=31)

null

printvar$a1to$a6infunctionfunc3:<!--因為所有變數不是聲明在函數func3外就是被聲明在其他函數中,所以都無法正確取值-->
null

null

null

null

null

null

printvar$a1to$a6infunctionfunc4:<!--除了在其它函數內未被聲明為全局的$a1和$a6,其他變數均被正確取值-->
null

string'vara2Infilebfunctionfunc1'(length=31)

string'vara3Infileaoutoffunction'(length=32)

string'vara4Infileaoutoffunction'(length=32)

string'vara5Infileafunctionfunc2'(length=31)

null


上面的代碼可以讓你很好的理解變數作用域的規則。


★ 資料參考

更多的變數作用域資料請參考http://www.php.net/manual/zh/language.variables.scope.php

Ⅲ 一個PHP文件想用另一個PHP文件里的變數怎麼辦

需要准備的材料分別是:電腦、php編輯器、瀏覽器。

1、首先,打開php編輯器,新建php文件,例如:index2.php,定義一個變數。

閱讀全文

與php引用外部變數相關的資料

熱點內容
霍格沃茨選什麼伺服器 瀏覽:652
大學加密貨幣投資 瀏覽:238
虛擬伺服器如何查路由器埠 瀏覽:236
ipad怎麼增加app拓展塢 瀏覽:254
安卓軟體開發公司如何選擇 瀏覽:664
大型解壓器怎麼做 瀏覽:173
如何保存網頁成PDF 瀏覽:488
linux怎麼編譯內核 瀏覽:432
solidworks入門pdf 瀏覽:819
中國工商銀行app如何看支行 瀏覽:433
wps弄照片到文件夾 瀏覽:463
大眾如何在線編程 瀏覽:787
ipad如何關閉app中的app 瀏覽:442
大腦認知pdf 瀏覽:441
程序員大方 瀏覽:794
怎樣加密微信聊天記錄簡單點 瀏覽:387
python數據類型狀態判斷 瀏覽:47
java文件打開對話框 瀏覽:824
pdf怎麼打勾 瀏覽:21
java資料庫insert 瀏覽:668