关于PHP中的函数内部申明global变量,在另个函数无法检测此变量

缺水的孩子 2011-12-10 11:54:28
RT ,
检测代码:

function check_url($url,$open_check=0){
global $error;
if ($open_check == 1){
$preg_moudle = '/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/';
if (!preg_match($preg_moudle,$url)){
$error = public_info('error','在更新网址的时候出现错误~~');
}
}
return public_string_special($url);
}


调用函数:

function customMenu(){
$menu_url = check_url($_POST['menu_url'],1);
if (isset($error)){
echo 'insert error';
} else {
echo '1';
}
}


这里我在调用函数来检测URL是否正确的时候,发现检测不出来$error 的存在,想问下在函数内部声明的全局变量,在另一个函数中无法调用吗~~
求高手啊
...全文
137 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiachao2008 2011-12-10
  • 打赏
  • 举报
回复
在函数内部声明的全局变量,在另一个函数中无法调用吗

可以调用的




imbigsnake1 2011-12-10
  • 打赏
  • 举报
回复

function customMenu(){
global $error;
$menu_url = check_url($_POST['menu_url'],1);
if (isset($error)){
echo 'insert error';
} else {
echo '1';
}
}
imbigsnake1 2011-12-10
  • 打赏
  • 举报
回复

function customMenu(){
global $error;
$menu_url = check_url($_POST['menu_url'],1);
if (isset($error)){
echo 'insert error';
} else {
echo '1';
}
}
imbigsnake1 2011-12-10
  • 打赏
  • 举报
回复
另一个函数也要global吧
woguohe11111 2011-12-10
  • 打赏
  • 举报
回复
function customMenu(){
global $error;
$menu_url = check_url($_POST['menu_url'],1);
if (isset($error)){
echo 'insert error';
} else {
echo '1';
}
}

缺水的孩子 2011-12-10
  • 打赏
  • 举报
回复
2楼的我错了,发现自己学的太少了,刚刚才发现,global $error 只是将其 改成全局变量,现在这要可以正常调用了,不好意思啊,小弟刚学这个,所以啦......
imbigsnake1 2011-12-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jiangyahai 的回复:]

引用 3 楼 imbigsnake1 的回复:

C/C++ code

function customMenu(){
global $error;
$menu_url = check_url($_POST['menu_url'],1);
if (isset($error)){
echo 'insert error';
} else {
……


如果这样写的号,那我就……
[/Quote]
当然需要啊,你$error又没有初始化
缺水的孩子 2011-12-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xiachao2008 的回复:]

在函数内部声明的全局变量,在另一个函数中无法调用吗

可以调用的
[/Quote]

我试了一下,如果我将这个

function customMenu(){
$menu_url = check_url($_POST['menu_url'],1);
if (isset($error)){
echo 'insert error';
} else {
echo '1';
}
}

不写成函数形式,是可以调用检测出$error ,但是我写成函数形式就无法检测到$error 了~
缺水的孩子 2011-12-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 imbigsnake1 的回复:]

C/C++ code

function customMenu(){
global $error;
$menu_url = check_url($_POST['menu_url'],1);
if (isset($error)){
echo 'insert error';
} else {
……
[/Quote]

如果这样写的号,那我就不需要检测 isset($error) 了吧,主要是在出错的情况下 才会产生 $error 啊,

21,886

社区成员

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

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