小白求指点:自定义函数内调用另外一个函数里的全局变量,该怎么写啊

叫我梁大侠 2015-05-21 04:25:07
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();
}


输出为空,小白求大神指点一下这个该怎么写才规范正确啊..

...全文
273 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
叫我梁大侠 2015-05-22
  • 打赏
  • 举报
回复
引用 7 楼 xuzuning 的回复:
function marrbase(){
  ....
  return $mbase;
}

function supp() {
  $mbase = marrbase();
  echo $mbase["email"];
}
function marrbase(&$mbase){
  ....
  $mbase = ....;
}

function supp() {
  marrbase($mbase);
  echo $mbase["email"];
}
非常感谢~~受教了 谢谢
xuzuning 2015-05-21
  • 打赏
  • 举报
回复
function marrbase(){
  ....
  return $mbase;
}

function supp() {
  $mbase = marrbase();
  echo $mbase["email"];
}
function marrbase(&$mbase){
  ....
  $mbase = ....;
}

function supp() {
  marrbase($mbase);
  echo $mbase["email"];
}
叫我梁大侠 2015-05-21
  • 打赏
  • 举报
回复
作为参数传递? 怎么设计啊
xuzuning 2015-05-21
  • 打赏
  • 举报
回复
作为参数传递
叫我梁大侠 2015-05-21
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
因为你在函数里有 global $mbase; 所以 $mbase 就是全局变量了 只要你执行过 marrbase 函数 $mbase 就可在函数外访问了 但这样的写法并不符合软件工程学中 低耦合 的要求
那该怎么写 才正规啊
xuzuning 2015-05-21
  • 打赏
  • 举报
回复
因为你在函数里有 global $mbase; 所以 $mbase 就是全局变量了 只要你执行过 marrbase 函数 $mbase 就可在函数外访问了 但这样的写法并不符合软件工程学中 低耦合 的要求
叫我梁大侠 2015-05-21
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
function supp() { global $mbase; marrbase(); echo $mbase["email"]; exit(); }
谢谢啊,我还是有个小疑问: 我现在是在supp()里面调用的,但是我在其他页面输出的时候 直接echo $mbase["email"]; exit(); 又能输出值 这是怎么回事啊?
xuzuning 2015-05-21
  • 打赏
  • 举报
回复
function supp() { global $mbase; marrbase(); echo $mbase["email"]; exit(); }

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧