很多站长朋友们都不太清楚php文件作用域,今天小编就来给大家整理php文件作用域,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 浅谈php中include文件变量作用域 2、 Php全局变量怎么使用 他的作用域是什么 3、 PHP global 关键字、Static 作用域 浅谈php中include文件变量作用域本文给大家总结了php中include文件时的几种情况下的作用域,十分的简单实用,希望对大家熟悉include的使用能够有所帮助。
在php中我们有时候需要include一个文件。比如我前段时间在写一个框架的时候,打算用原生的php作为模板,然后写一个display方法引入模板文件就可以,但是这只是我的意淫而已。
写完后发现在模板中所有的变量都提示未定义。通过各种研究和查找资料,总结了include文件时的几种情况下的作用域。
第一种情况:A文件include
B文件,在B文件中可以调用A中的变量。
A文件代码:
1
2
3
4
?php
$aaa
=
'123';
include
B.php;
B文件代码:
1
2
3
?php
echo
$aaa;
可以正常输出内容。
第二种情况:A文件include
B文件,然后在A文件中可以调用B文件的变量。
A文件代码:
1
2
3
4
5
?php
include
B.php;
echo
$fff;
B文件代码:
1
2
3
?php
$fff
=
'i
am
f';
这个时候是可以正常输出内容的。
第三种情况:A文件的某个类的某个方法中调用B文件,然后在B文件中可以调用该方法中的变量。
A文件代码:
1
2
3
4
5
6
7
8
9
10
11
?php
class
test{
public
function
show(){
$bbb
=
'abc';
include
B.php;
}
}
$t
=
new
test;
$t-show();
B文件的代码:
1
2
3
?php
echo
$bbb;
这个时候是可以正常输出内容的。
第四种情况:A文件通过定义的一个函数引入B文件,在B文件中无法使用A中的变量,但是可以使用A文件中调用函数(display)中的变量。
A文件代码:
1
2
3
4
5
6
7
8
9
?php
$aaa
=
'123';
function
display($file){
$bbb=
'asdasdas';
include
$file;
}
display(B.php);
B文件代码:
1
2
3
?php
echo
$aaa;
echo
$bbb;
运行后$aaa提示未定义,$bbb可以正常输出。
所以我开始准本用一个display方法来引入模板是不可行的。根据方面的三种情况,最后我选择了写一个类来导入模板文件。目前ThinkPHP和Smarty也都是用类来引入模板文件的。文中不足之处欢迎指正。
以上所述就是本文的全部内容了,希望大家能够喜欢。
Php全局变量怎么使用 他的作用域是什么PHP的全局变量其实指的顶级作用域变量。
在每一个次级作用域中,上一级作用域的变量都会被隐藏起来。
但是在全局变量之上还有一种超全局变量,例如$_GET,$_POST,$_SERVER等等,一共有8大类,这8类又可以通过$GLOBALS来统一访问。
你如果可以访问下面这个网址的话,会比较容易理解一些。
“超全局变量是在全部作用域中始终可用的内置变量”。
换句话说,不管你在什么作用域中,你都是可以访问到任意超全局变量的。
PHP global 关键字、Static 作用域PHP global 关键字
global 关键字用于函数内访问全局变量。
在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字:
Static 作用域
当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。
要做到这一点,请在您第一次声明变量时使用 static 关键字:
运行结果:0 1 2
然后,每次调用该函数时,该变量将会保留着函数前一次被调用时的值。
注释:该变量仍然是函数的局部变量。
关于php文件作用域的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php文件作用域 php文件可包含哪三部分代码的详细内容...