php 无法调用2层require_once文件中的变量

a.php有一个$db_server变量b.php使用require_once('a.php')可以调用$db_server,c.php使用require_once('b... a.php有一个$db_server变量
b.php使用require_once('a.php')可以调用$db_server,
c.php使用require_once('b.php')无法使用$db_server变量了,请问下这个是什么原因?我现在要用$db_server该怎么办?
b.php是个类,构造函数中使用了require_once('a.php')
展开
 我来答
初紫易7m
2013-10-27 · 超过31用户采纳过TA的回答
知道答主
回答量:55
采纳率:100%
帮助的人:46.1万
展开全部
c.php调用b.php后
在c.php里调用b.php的类要用
$c=new className(); //className是你b.php里的类名
然后调用类中的变量(具体还要看你这个类里$db_server 的属性是public 还是private...)
一般的用
$d=$c->db_server ;
来调用$db_server;
追问
a.php内容   $db_server="localhost"; 
b.php内容
class MysqlConn {
public function __construct() {
require_once("a.php");
echo $db_server; //可以输出
}
c.php内容: 实例化类 echo $db_server; //输出空
追答
直接在c.php里写
require_once('b.php');
$d=new MysqlConn();
因为是构造函数会直接输出内容
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
目送502
2013-10-28 · 超过43用户采纳过TA的回答
知道小有建树答主
回答量:129
采纳率:0%
帮助的人:94.3万
展开全部

测试没问题

更多追问追答
追问
c.php中构造函数的$db_server可以输出,
但是下面的一句echo $db_server输出为空
追答
a.php 文件
$db_server="localhost";

b.php 文件

require_once("a.php");
class MysqlConn {
private $a;
public function __construct($canshu) {
$this->a=$canshu;
//echo $this->a;
}
}
$m=new MysqlConn($db_server);

c.php文件

require_once("b.php");
echo $db_server;

传不了图片,只能写代码了,你测试一下,没问题了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友735c2f8
2013-10-27 · TA获得超过193个赞
知道小有建树答主
回答量:1130
采纳率:0%
帮助的人:514万
展开全部
构造函数中使用了require_once('a.php'),说明必须要实例化b后才可以用$db_server。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
HUC越前
2013-10-27 · TA获得超过263个赞
知道小有建树答主
回答量:281
采纳率:0%
帮助的人:187万
展开全部

在c.php中必须再包含一次a.php  

require_once('a.php');
require_once('b.php');
追问
再包含一次一大堆错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yoo48
2013-10-28
知道答主
回答量:7
采纳率:0%
帮助的人:5.6万
展开全部
实例化一下类,
然后把$db_server做成public属性
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式