A brief discussion on the variable scope of include files in PHP_PHP Tutorial

WBOY
Release: 2016-07-13 09:50:15
Original
826 people have browsed it

A brief discussion on the variable scope of include files in PHP

This article summarizes the scope of several situations when including files in PHP. It is very simple and practical. I hope it will be helpful to you. It can be helpful for everyone to be familiar with the use of include.

Sometimes we need to include a file in php. For example, when I was writing a framework some time ago, I planned to use native PHP as the template, and then write a display method to introduce the template file, but this was just my imagination.

After finishing writing, I found that all variables in the template were undefined. Through various research and searching for information, I summarized the scope in several situations when including files.

The first situation: File A includes file B, and variables in A can be called in file B.

A file code:

 ?

1

2

3

4

$aaa = '123';

include "B.php";

1

2

3

1

2

3

echo $aaa;

4

$aaa = '123';

1

2

3

4

5

include "B.php";

echo $fff;

include "B.php";

B file code:

1

2

3

$fff = 'i am f';

 ?

1

2

3

1

2

3

4

5

6

7

8

9

10

11

class test{

public function show(){

$bbb = 'abc';

include "B.php";

}

}

$t = new test;

$t->show();

1

2

3

echo $bbb;

echo $aaa;<🎜> <🎜>
<🎜> Content can be output normally. <🎜> <🎜>Second case: File A includes file B, and then the variables of file B can be called in file A. <🎜> <🎜> A file code: <🎜> <🎜> ?<🎜>
<🎜>1<🎜> <🎜>2<🎜> <🎜>3<🎜> <🎜>4<🎜> <🎜>5<🎜> <🎜> <🎜> <🎜> <🎜> <🎜>include "B.php";<🎜> <🎜> <🎜> <🎜>echo $fff;<🎜> <🎜>
<🎜>B file code: <🎜> <🎜> ?<🎜>
<🎜>1<🎜> <🎜>2<🎜> <🎜>3<🎜> <🎜> <🎜> <🎜> <🎜> <🎜>$fff = 'i am f';<🎜> <🎜>
<🎜> At this time, the content can be output normally. <🎜> <🎜> The third situation: File B is called in a method of a certain class in file A, and then the variables in the method can be called in file B. <🎜> <🎜> A file code: <🎜> <🎜> ?<🎜>
<🎜>1<🎜> <🎜>2<🎜> <🎜>3<🎜> <🎜>4<🎜> <🎜>5<🎜> <🎜>6<🎜> <🎜>7<🎜> <🎜>8<🎜> <🎜>9<🎜> <🎜>10<🎜> <🎜>11<🎜> <🎜> <🎜> <🎜> <🎜> <🎜>class test{<🎜> <🎜>public function show(){<🎜> <🎜>$bbb = 'abc';<🎜> <🎜>include "B.php";<🎜> <🎜>}<🎜> <🎜>}<🎜> <🎜> <🎜> <🎜>$t = new test;<🎜> <🎜>$t->show();

Code of file B:  ?
1 2 3

At this time, the content can be output normally.

The fourth situation: File A imports file B through a defined function. Variables in A cannot be used in file B, but variables in the calling function (display) in file A can be used.

A file code:

 ?

1

2

3

4

5

6

7

8

9

$aaa = '123';

 

function display($file){

$bbb= 'asdasdas';

include $file;

}

 

display("B.php");

1

2

3

1

2

3

echo $aaa;

echo $bbb;

4

5

6

7

8

$aaa = '123'; function display($file){ $bbb= 'asdasdas'; include $file;
}
display("B.php");
B file code:  ?
1 2 3
After running, $aaa prompts that it is undefined, and $bbb can be output normally. So I started to believe that it was not feasible to introduce the template using a display method. Based on the three situations, I finally chose to write a class to import the template file. Currently, ThinkPHP and Smarty also use classes to introduce template files. Any deficiencies in the article are welcome to be corrected. The above is the entire content of this article, I hope you all like it. http://www.bkjia.com/PHPjc/1018370.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1018370.htmlTechArticleA brief discussion on the variable scope of include files in php. This article summarizes several situations when including files in php. scope, very simple and practical, I hope everyone is familiar with the use of include...
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template