Heim > Artikel > Backend-Entwicklung > 小白求指点:自定义函数内调用另外一个函数里的全局变量,该怎么写啊
member.inc.php:
function marrbase(){if(isset($_COOKIE["uname"]) && isset($_COOKIE["uid"])){global $mbase;$mbase_data = mysql_query("select * from dh_member where `id`=" . $_COOKIE["uid"] . " and `mck`=1");if (!$mbase_data){die(mysql_error());exit();}$mbase = mysql_fetch_array($mbase_data);}else{exit();}}
require_once("member.inc.php");function supp(){marrbase();echo $mbase["email"]; exit();}
function supp() {
global $mbase;
marrbase();
echo $mbase["email"]; exit();
}
function supp() {
global $mbase;
marrbase();
echo $mbase["email"]; exit();
}
因为你在函数里有 global $mbase;
所以 $mbase 就是全局变量了
只要你执行过 marrbase 函数
$mbase 就可在函数外访问了
但这样的写法并不符合软件工程学中 低耦合 的要求
因为你在函数里有 global $mbase;
所以 $mbase 就是全局变量了
只要你执行过 marrbase 函数
$mbase 就可在函数外访问了
但这样的写法并不符合软件工程学中 低耦合 的要求
作为参数传递
作为参数传递?
怎么设计啊
function marrbase(){ .... return $mbase;}function supp() { $mbase = marrbase(); echo $mbase["email"];}
function marrbase(&$mbase){ .... $mbase = ....;}function supp() { marrbase($mbase); echo $mbase["email"];}
function marrbase(){ .... return $mbase;}function supp() { $mbase = marrbase(); echo $mbase["email"];}
function marrbase(&$mbase){ .... $mbase = ....;}function supp() { marrbase($mbase); echo $mbase["email"];}