起步 - 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的文件代码都已经被加载到内存里面了,后面的其它代码都能调用