自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何正確理解PHP include作用域

開發(fā) 后端
我們?yōu)榇蠹铱偨Y(jié)的PHP include作用域的問題包括:PHP include作用域和函數(shù)、類的作用域等方面的問題。希望對(duì)大家有所幫助。

很多程序員在使用PHP語言進(jìn)行實(shí)際編程時(shí),通常只會(huì)關(guān)注PHP函數(shù)能實(shí)現(xiàn)什么功能,但是都不會(huì)去深入的了解這個(gè)函數(shù)的具體含義及隱含的問題。我們今天就為大家介紹PHP include作用域的相關(guān)問題。#t#

注意:本文檔基于include敘述,但也適用于 require。這兩種結(jié)構(gòu)除了在如何處理包含失敗之外,其他完全一樣:在包含失敗時(shí),include()產(chǎn)生一個(gè)警告并繼續(xù)執(zhí)行,而require()則導(dǎo)致一個(gè)致命錯(cuò)誤。換句話說,如果想在遇到丟失文件時(shí)停止處理頁面就用require(),否則就用include()。

PHP include作用域1、c

  1. < ?php  
  2. $color = 'green';  
  3. $fruit = 'apple';  
  4. ?> 
  1. < ?php  
  2. function foo()  
  3. {  
  4. global $color;  
  5. include 'vars.php';  
  6. echo "A $color $fruit";  
  7. }  
  8. foo();   
  9. // A green apple  
  10. echo "A $color $fruit";   
  11. // A green  
  12. ?>  

由此例可看出:

(1) 被包含文件的變量的PHP include作用域遵從包含文件所在處的作用域。即在函數(shù)里使用include將其他文件的變量包含進(jìn)來,這些變量的作用域?yàn)樵摵瘮?shù)內(nèi)。

(2) foo()函數(shù)外能打印出$color的值,并沒有違反(1)的規(guī)定。那是因?yàn)楹瘮?shù)開始已經(jīng)聲明$color為global (盡管foo()函數(shù)外并沒有$color變量,此時(shí)的$color變量并不是vars.php里面的$color變量,而是一個(gè)強(qiáng)制聲明為“全局”的新變量,這時(shí)它還沒有被賦值,當(dāng)下面包含進(jìn)vars.php后,根據(jù)(1)的原則,vars.php中的$color變量自動(dòng)享有函數(shù)內(nèi)的作用域,所以它的值就是全局變量$color的值)

PHP include作用域2、函數(shù)、類的作用域

  1. < ?php  
  2. class ClassB {  
  3. /**  
  4. * constructor  
  5. */  
  6. public function __construct(){}  
  7. /**  
  8. * destructor  
  9. */  
  10. public function __destruct() {}  
  11. public function printit() {  
  12. echo 'print it in ClassB.<br />';  
  13. }   
  14. }  
  15. function show_func_included() {  
  16. echo 'show_func_included<br/>';  
  17. }  
  18. ?> 
  1. < ?php  
  2. function include_class() {  
  3. include('classb.php');  
  4. }  
  5. include_class();  
  6. $objB = new ClassB();  
  7. $objB->printit();   
  8. // print it in ClassB.  
  9. show_func_included()   
  10. // show_func_included  
  11. ?>  

由此例可以看出

所有在被包含文件中定義的函數(shù)和類在被包含后,在包含文件里都具有全局作用域

結(jié)論:

1、被包含文件的變量的PHP include作用域遵從(不改變)包含文件所在處的作用域。
2、所有在被包含文件中定義的函數(shù)和類在被包含后,在包含文件里都具有全局作用域

責(zé)任編輯:曹凱 來源: laigw.name
相關(guān)推薦

2009-12-04 17:16:41

PHP析構(gòu)函數(shù)

2009-12-04 18:00:46

PHP開發(fā)MVC模型

2009-12-03 18:07:47

PHP轉(zhuǎn)義

2009-12-07 14:53:13

PHP抽象類應(yīng)用

2010-02-01 10:54:37

C++框架

2009-12-03 15:31:30

PHP獲取顯示數(shù)據(jù)庫數(shù)

2009-06-18 10:29:24

Hibernate I

2009-12-14 17:48:46

Ruby String

2009-12-16 17:00:43

Ruby on Rai

2009-12-17 11:36:55

Ruby輸入輸出

2010-08-05 15:40:07

DB2快照函數(shù)

2020-01-07 15:10:32

Linuxinode命令

2010-07-20 12:35:33

SQL Server索

2010-01-05 14:01:27

JSON.NET

2010-01-07 16:46:28

VB.NET延時(shí)函數(shù)

2009-04-20 09:09:46

PHP錯(cuò)誤信息錯(cuò)誤代碼

2024-01-29 00:35:00

Go并發(fā)開發(fā)

2023-12-27 19:52:08

Go模塊命令

2010-01-18 17:29:35

VB.NET函數(shù)調(diào)用

2010-02-04 15:05:00

C++ cpuid指令
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)