PHP function 里 怎么调用外部定义过的变量
<?phpinclude("inc/config.php");functiongamels($sql){$dbcnx=mysql_connect("$mysqlip","...
<?php
include("inc/config.php");
function gamels($sql)
{
$dbcnx = mysql_connect("$mysqlip","$mysqlname","$mysqlpass"); $link = mysql_select_db("$mysqdb");
if(!$link)
{
echo "数据库连接失败!";
}
else
{
return mysql_query($sql);
}
}
?>
代码结束。
问题:
$mysqlip
$mysqlname
$mysqlpass
$mysqdb
这几个参数都是在 inc/config.php 配置文件里定义赋值过的参数.
可是执行的时候 却获取不到?求高人指点下谢谢! 展开
include("inc/config.php");
function gamels($sql)
{
$dbcnx = mysql_connect("$mysqlip","$mysqlname","$mysqlpass"); $link = mysql_select_db("$mysqdb");
if(!$link)
{
echo "数据库连接失败!";
}
else
{
return mysql_query($sql);
}
}
?>
代码结束。
问题:
$mysqlip
$mysqlname
$mysqlpass
$mysqdb
这几个参数都是在 inc/config.php 配置文件里定义赋值过的参数.
可是执行的时候 却获取不到?求高人指点下谢谢! 展开
6个回答
展开全部
很不习惯PHP中的变量作用域,PHP中函数变量和全局是完全隔绝的,也就是无法相互访问。
比如下面这样:
复制代码代码如下:
$test = 123;
abc(); //这里什么都不输出,因为访问不到$test变量
function abc(){
echo($test);
}$test = 123;
abc(); //这里什么都不输出,因为访问不到$test变量
function abc(){
echo($test);
}
如果,你想在函数内部访问外部变量,你需要这样:
复制代码代码如下:
$test = 123;
abc(); //输出123
function abc(){
global $test;
echo($test);
}$test = 123;
abc(); //输出123
function abc(){
global $test;
echo($test);
}
也就是说,你使用全局变量就可以在函数内调用外部定义过的变量
比如下面这样:
复制代码代码如下:
$test = 123;
abc(); //这里什么都不输出,因为访问不到$test变量
function abc(){
echo($test);
}$test = 123;
abc(); //这里什么都不输出,因为访问不到$test变量
function abc(){
echo($test);
}
如果,你想在函数内部访问外部变量,你需要这样:
复制代码代码如下:
$test = 123;
abc(); //输出123
function abc(){
global $test;
echo($test);
}$test = 123;
abc(); //输出123
function abc(){
global $test;
echo($test);
}
也就是说,你使用全局变量就可以在函数内调用外部定义过的变量
展开全部
要用global 关键字先声明是全局变量,
global $mysqlip, $mysqlname, $mysqlpass, $mysqdb; //然后才能用
$dbcnx = mysql_connect("$mysqlip","$mysqlname","$mysqlpass");
global $mysqlip, $mysqlname, $mysqlpass, $mysqdb; //然后才能用
$dbcnx = mysql_connect("$mysqlip","$mysqlname","$mysqlpass");
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你在 inc/config.php 页面中 ,把$mysqlip $mysqlname ,$mysqlpass, $mysqdb
这四个变量前都加上global 就是全局变量了,就可以获取了
这四个变量前都加上global 就是全局变量了,就可以获取了
追问
global $mysqlip = "localhost:3316"; 这样吗?
追答
恩
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这样声明全局变量是错的:global $mysqlip = "localhost:3316";
正确写法:global $mysqlip;
$mysqlip = "localhost:3316";
正确写法:global $mysqlip;
$mysqlip = "localhost:3316";
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
改成全局变量 $GLOBALS['mysqlip'] ; 或者在方法能参数传递进去。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |