導航:首頁 > 編程語言 > 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引用外部變數相關的資料

熱點內容
erp是什麼伺服器 瀏覽:182
python中tmp 瀏覽:19
說明wpf加密過程 瀏覽:142
java讀取list 瀏覽:702
iis7gzip壓縮 瀏覽:39
有什麼安卓機打吃雞好 瀏覽:597
三星u盤加密狗 瀏覽:473
php函數的返回值嗎 瀏覽:586
國企穩定程序員 瀏覽:328
編程貓如何使用教程視頻 瀏覽:218
安卓遠端網頁如何打日誌 瀏覽:218
壓縮flash大小 瀏覽:993
解壓的玩具教程可愛版 瀏覽:366
哪個求職app比較靠譜 瀏覽:888
java的讀法 瀏覽:60
nod32區域網伺服器地址 瀏覽:1003
數碼科技解壓 瀏覽:236
新網的雲伺服器管理界面復雜嗎 瀏覽:367
無人聲解壓強迫症視頻 瀏覽:573
計算機編譯運行 瀏覽:640