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

為霍爾果斯等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及霍爾果斯網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站制作、霍爾果斯網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
注意:本文檔基于include敘述,但也適用于 require。這兩種結(jié)構(gòu)除了在如何處理包含失敗之外,其他完全一樣:在包含失敗時(shí),include()產(chǎn)生一個(gè)警告并繼續(xù)執(zhí)行,而require()則導(dǎo)致一個(gè)致命錯(cuò)誤。換句話說(shuō),如果想在遇到丟失文件時(shí)停止處理頁(yè)面就用require(),否則就用include()。
PHP include作用域1、c
- < ?php
- $color = 'green';
- $fruit = 'apple';
- ?>
- < ?php
- function foo()
- {
- global $color;
- include 'vars.php';
- echo "A $color $fruit";
- }
- foo();
- // A green apple
- echo "A $color $fruit";
- // A green
- ?>
由此例可看出:
(1) 被包含文件的變量的PHP include作用域遵從包含文件所在處的作用域。即在函數(shù)里使用include將其他文件的變量包含進(jìn)來(lái),這些變量的作用域?yàn)樵摵瘮?shù)內(nèi)。
(2) foo()函數(shù)外能打印出$color的值,并沒(méi)有違反(1)的規(guī)定。那是因?yàn)楹瘮?shù)開(kāi)始已經(jīng)聲明$color為global (盡管foo()函數(shù)外并沒(méi)有$color變量,此時(shí)的$color變量并不是vars.php里面的$color變量,而是一個(gè)強(qiáng)制聲明為“全局”的新變量,這時(shí)它還沒(méi)有被賦值,當(dāng)下面包含進(jìn)vars.php后,根據(jù)(1)的原則,vars.php中的$color變量自動(dòng)享有函數(shù)內(nèi)的作用域,所以它的值就是全局變量$color的值)
PHP include作用域2、函數(shù)、類的作用域
- < ?php
- class ClassB {
- /**
- * constructor
- */
- public function __construct(){}
- /**
- * destructor
- */
- public function __destruct() {}
- public function printit() {
- echo 'print it in ClassB.
';- }
- }
- function show_func_included() {
- echo 'show_func_included
';- }
- ?>
- < ?php
- function include_class() {
- include('classb.php');
- }
- include_class();
- $objB = new ClassB();
- $objB->printit();
- // print it in ClassB.
- show_func_included()
- // show_func_included
- ?>
由此例可以看出:
所有在被包含文件中定義的函數(shù)和類在被包含后,在包含文件里都具有全局作用域
結(jié)論:
1、被包含文件的變量的PHP include作用域遵從(不改變)包含文件所在處的作用域。
2、所有在被包含文件中定義的函數(shù)和類在被包含后,在包含文件里都具有全局作用域
網(wǎng)頁(yè)題目:如何正確理解PHP include作用域
文章源于:http://www.5511xx.com/article/dheooss.html


咨詢
建站咨詢
