看你的说明头很 大!
//我是根目录的index.php
function get_header(){
require('./tpl/header.php');
}
function get_footer(){
require('./tpl/footer.php');
}
$a = "我是变量A";
require('./tpl/index.php'); 是作用域的问题,当你require('./tpl/header.php')时,其中定义的变量是在get_header()这个函数的作用域内,在其外面是访问不到的######确实是作用域的问题,解答的很清楚######回复
@卡卡罗特 : global######噢。那有什么解决法子没?还真第一次遇到。######变量作用域的问题了.######全局变量######如果是作用域的问题。那有什么方案解决呢? 我看wordpress程序也是把 需要的文件引入 写成 函数形式之类调用的的。######
header.php: footer.php:
无法显示$a是正常的, 因为变量不在函数体内.
tpl/index.php 应该会显示吧. ######
作用域的问题,框架设计的有问题。如果按你那么来,就要使用global了,不过这会很丑
$a=5;
function head(){
echo '我是页眉';
global $a;
echo $a;//函数范围里使用全局变量
echo '
';
}
head(); 设计理念太落后,建议更新知识库######只能用全局变量了.######
function(){}或foo(), 也就是方法定义或者调用, 都会引起变量局部的, 所以include/require的时候, 确保没有被function/class隔离, 就可以直接访问, 如: ######... 按错键盘.. a.php <?php $a=1; b.php <?php include a.php echo $a;######echo $GLOBALS['a'];