第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

用composer引入一個(gè)函數(shù)文件后,方法可以執(zhí)行,為什么變量獲取不到?

用composer引入一個(gè)函數(shù)文件后,方法可以執(zhí)行,為什么變量獲取不到?

蝴蝶不菲 2019-05-24 09:55:35
用composer引入一個(gè)函數(shù)文件后,方法可以執(zhí)行,為什么變量獲取不到?
查看完整描述

2 回答

?
搖曳的薔薇

TA貢獻(xiàn)1793條經(jīng)驗(yàn) 獲得超6個(gè)贊

自動(dòng)加載是在newSomeClass時(shí),當(dāng)前文件搜索不到該類,觸發(fā)spl_autoload_register函數(shù)進(jìn)行自動(dòng)加載
如果沒有newSomeClass時(shí),此時(shí)目標(biāo)文件是沒有被require進(jìn)來的,所以當(dāng)前文件訪問不到目標(biāo)文件中的變量
自動(dòng)加載是對于類添加的引入機(jī)制,全局變量可寫在單獨(dú)的配置文件中,然后在項(xiàng)目的引導(dǎo)(入口)文件中引入全局配置文件
----------------更新----------------------------
看了下composer的autoload源碼
mylaravel/vendor/composer/autoload_real.php
composer.json中的files是在
functioncomposerRequire425b24fc62bbc5c7498e25c716f58d88($fileIdentifier,$file)
{
if(empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])){
require$file;
$GLOBALS['__composer_autoload_files'][$fileIdentifier]=true;
}
}
這個(gè)函數(shù)中引入的,在函數(shù)內(nèi)引入的文件的作用域是局部的,函數(shù)執(zhí)行完畢局部變量就被釋放了,變量訪問的時(shí)候是全局的,而引入的文件中的函數(shù)已經(jīng)注冊到全局函數(shù)表中,因此函數(shù)可以正常訪問
在引入的文件中使用$GLOBALS將變量注冊到全局變量表中,因此可在函數(shù)外部訪問
                            
查看完整回答
反對 回復(fù) 2019-05-24
?
三國紛爭

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊

方法可以執(zhí)行是因?yàn)閏lass類被自動(dòng)加載(spl_regists_autoload()__autoload())進(jìn)來了
但是變量或者常量,先引入包含,才能使用。
                            
查看完整回答
反對 回復(fù) 2019-05-24
  • 2 回答
  • 0 關(guān)注
  • 609 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)