起步 - include语句 ¶
作者:KK
发表日期:2016.8.4
这里主要讲的是一个PHP脚本如何引入另一个PHP脚本一起工作
先创建a.php,代码是:
include('b.php');
echo 'a.php<br/>';
echo $age;
showError('<br/>warning!');
echo $age2;
再创建b.php,代码是:
echo 'b.php<br/>';
$age = 18;
function showError($message){
$age2 = 1999;
echo '<span style="color:red;">' . $message . '</span>';
}
然后访问a.php,会看到如下结果:
b.php
a.php
18
warning! (这一行还是红色的)
。。。(报错信息)
讲解 ¶
include不是一个函数,而是一个语句
看到
include(xxx)
这样的代码书写,一般人会以为这是用了一个叫include的函数,其实include在PHP里不是函数,而是一个程序语句,对于新手阶段的你可能不好理解,但你只要知道这叫include语句,而不是include函数就行了include就相当于运行一个指定的PHP脚本
其实在a.php中的
include('b.php')
就是引入了b.php,这样会导致b.php里的代码被运行,所以我们先看到了b.php的执行代码被输出可以共享相同作用域的变量
在b.php里声明的变量$age,只是赋值并没有用来干什么,但是在a.php里就进行了echo,所以输出了这个变量,意味着a.php可以共享b.php声明过的变量
但其实并不是真的所有变量都能用,比如b.php的showError函数里的$age2变量,那是showError函数里的变量,a.php是不能调用的,其实你将b.php的所有代码复制起来,粘贴到a.php里,并删除掉a.php的include代码
则其实代码就是这样的:
echo 'b.php<br/>'; $age = 18; function showError($message){ $age2 = 1999; echo '<span style="color:red;">' . $message . '</span>'; } echo 'a.php<br/>'; echo $age; showError('<br/>warning!'); echo $age2;
这样将两个文件的代码合成一块就很好解释了,为什么
echo $age2;
会报错,因为$age2变量不在同一个作用域,而是在某个function里面,只要这个function没执行,里面变量就不会产生,而且函数执行完后,变量也会自动消失,也不属于外面的作用域可以共享函数
这句是废话,只是也是一个知识点所以特别说明了一下,b.php里声明的showError函数可以给a.php用,只要引入了就行
甚至如果有c.php引入了a.php的话,那c.php也能使用b.php里的东西,只要使用域相同就可以
只要你知道:include的文件代码都已经被加载到内存里面了,后面的其它代码都能调用