在a.php当中,赋值一个变量$var
在a.php中,使用require_once调用b.php, c.php,在c.php中使用require_once调用d.php
$var直接赋予某个数值,如$var = 12;时,在b/c/d.php中均可正常读取并使用$var, 当使用另外一个变量赋值,如$var = $xxx,则只在b/c中可正常读取使用$var, 而在d.php中就无法读取$var.
这是怎么回事啊?在用变量赋值的情况下,怎么才能让d.php也正常读取使用$var呢?
非常感谢“阳光上的桥、新翼追风,aupm”。我是为了实现一个特别的功能,而自己修改代码,才出现了上述的情况。再仔细研究之后,发现问题可能不是我上面讲的。
。。。。。
if 。。。。
} elseif ($modelid > 0) {
if ($postTopic) {
$postTopic->postCheck();
}
$topichtml = $postTopic->getTopicHtml($modelid,$add); // A处:$add就是我的目标变量,在此处是有效的。
} elseif ($pcid > 0) {
。。。
}
require_once(R_P . 'lib/topicpost.class.php'); //B处: topicpost.class.php就是调用的文件
$topicpost = new topicPost($pwpost);
if (empty($_POST['step'])) {
。。。。
} elseif ($_POST['step'] == 2) {
。。。。
$topicpost->execute($postdata,$add); //C处:再次使用$add变量,但无效果。execute函数在topicpost.class.php中定义。
。。。。
}
如果在文件最前面定义$add = 12(或其他具体数值,则在C处有效,如果是直接使用,则只在A处有效,在C处无效。在B处和C处之间有一些代码,也有一些require_once, 但感觉都无关,而且都不使用$add变量。
怪异啊?大侠们请帮忙解释下什么原因?
require_once()是调用公用的代码段(b.php,c.php,d.php),而你在公用的代码段又使用私有(a.php)中的变量值,这样不符合代码的规范。
也许楼主是为了学习相互调用的过程,但本人认为,应该在最初始的学习阶段,就学习并深刻理解规范的代码编写,这样对以后的工作非常有用。
应该不会出现你说的情况。你看下是不是其他的原因造成的。