PHP新生之require&include
Section A:先看看有关require()和include()的基本例子:
vars.php
1.
2. $color = 'green'
3. $fruit = 'apple'
4. ?>
│ test2.php
test.php │
1.
2. echo "A $color $fruit"; //这样只会输出: A │ echo "A $color $fruit";
3. include 'vars.php' │ $color= 'green'
4. echo "A $color $fruit"; //这样会输出: A green apple │ $fruit = 'apple'
?> │ echo "A $color $fruit"; ?>
左边两个文件和右边两一个文件的功能是一样的。include()起来了重要作用
知识点1:require()和include() 都是语句包括并运行指定文件.本例子中test.php中的第3行就相当于vars.php中的2,3行。看到test.php中的第3行了吗?那就是require()和include() 的用法,很多时间用require()和include()都是一样的,还如:
require 'prepend.php'//和include 'prepend.php' 是一样的
require $somefile;
require ('somefile.txt');
?>
他们有很多相同的地方,当在了有不同之处,听说理解他们的不同是很重要的啊。
先说一点要注意的吧:
知识点2:用这两个语句包含文件时,处理器会按HTML模式去解释其中的内容,处理完后又恢复到PHP模式,也就是说你要在被包含文件用PHP文件时,记着加上....?>
就行了。
Section B:
1.
2. function foo()
3. {
4. global $color;
5. include 'vars.php'
6. echo "A $color $fruit";
7. }
8. foo(); // 这样会输出:A green apple
9. echo "A $color $fruit"; // 这样会输出:A green
10.?>
看到这个例子的不同吗?
知识点3:如果 include 出现于调用文件中的一个函数里,则被调用的文件中所包含的所有代码将表现得如同它们是在该函数内部定义的一样。所以它将遵循该函数的变量范围。 什么是变量范围?说白了,也就是它的生效范围,如一个变量:$a=1,这个变量在什么地方会生效,也就是说什么时候$a会等于1?
要记住的是:
知识点4:任何用于函数内部的变量按缺省情况将被限制在局部函数范围内。
1.
2. function(test){
3. $a=1;
4. echo $a; //这语句会输出数字 1,函数内部变量有效。
5. }
6. echo $a; //这语句不会输出数字 1,因为$a这个变量的有效范围在局部函数范围内,也就是行2到行5之间,而这已经是行6了。
7. ?>
当然这要在函数上外部引用内部函数是可以的,
知识点5:在函数中用global把你要外部引用的变量申明全局变量就行了,PHP 中全局变量在函数中使用时必须申明为全局。 用法:
1.
2. function(test){
3. $a=1; global $a;
4. echo $a; //这语句会输出数字 1,函数内部变量有效。
5. }
6. echo $a; //这语句也会输出数字 1,因为行2的global语句已经把变理$a申明为全局变理,也适用于这里了。
7. ?>
说到这里能理解知识点3了吧。
好了,来看看他们的不同吧。
知识点6:require()会无条件读取文件里的内容,而不管文件内的语句会不会被执行。如果想按不同条件包含不同文件就要用include()了。也就是说要是想用条件控制语句和循环语句来控制包含不同的文件就要用include()而不能用require()
如:要包含file.php就要用include()因为这里要按不同条件包含不同文件.
file.php
1.
2. $files=array('a.php','b.php','c.php');//新建一个数组,简单讲一下,就当于:$files[1]='a.php'$files[2]='b.php'$files[3]='c.php'
3. for($i=0;$i
4. include $files[$i];
5. }
6. ?>
简言之
require()
在一开始就调用近来
include()
只有在代码出现的时候才会调用