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

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

停止在PHP中使用“global”

停止在PHP中使用“global”

PHP
縹緲止盈 2019-06-24 09:25:49
停止在PHP中使用“global”我有一個(gè)config.php包含在每一頁中。在配置中,我創(chuàng)建了一個(gè)類似于以下內(nèi)容的數(shù)組:$config = array();$config['site_name']      = 'Site Name';$config['base_path']      = '/home/docs/public_html/'; $config['libraries_path'] = $config['base_path'] . '/libraries';//etc...那我就有了function.php,這也包括在幾乎每一頁,其中我必須使用global $config才能接觸到它-而且這,這個(gè)就是我想擺脫的東西!我如何訪問$config在代碼的其他部分中,而不使用global?有人能解釋一下嗎為什么我不應(yīng)該用global以我為例?有人說這是不好的語氣,另一些人說這不安全?編輯1:我在哪里以及如何使用它的例子:function conversion($Exec, $Param = array(), $Log = '') {         global $config;         $cmd = $config['phppath'] . ' ' . $config['base_path'] . '/' . $Exec;                 foreach ($Param as $s)                 {                     $cmd .= ' ' . $s;                 }  }編輯2:把所有這些都放到課堂上,就像維爾克斯,但在本例中,我將如何將其與正在提取配置的下面的循環(huán)綁定key和value從數(shù)據(jù)庫。我把分配的想法簡單化了$config數(shù)組,下面是一個(gè)示例:$sql = "SELECT * from settings";$rsc = $db->Execute($sql);if ( $rsc ) {     while(!$rsc->EOF) {         $field = $rsc->fields['setting_options'];         $config[$field] = $rsc->fields['setting_values'];         @$rsc->MoveNext();     }}編輯3:另外,我還得去找其他人vars來自在config中設(shè)置的函數(shù),并且它們很少,例如:$db, $language等等。如果我把它們放到課堂上,它真的能解決任何問題嗎?如果我用global它真正改變了什么?編輯4:我讀PHP全局函數(shù)哪里高登用一種很好的方式解釋了為什么你不應(yīng)該用global..我同意每件事,但我不使用global在我的例子中,重新分配變量,這會(huì)導(dǎo)致,就像他說的,<-- WTF!!是的,同意,這太瘋狂了。但是,如果我只需要從一個(gè)函數(shù)訪問數(shù)據(jù)庫,只需使用global $db這個(gè)案子的問題在哪里?您如何做到這一點(diǎn),否則,不使用global?編輯5:在相同的PHP全局函數(shù)中欺騙說:“反對(duì)全球的一個(gè)主要原因是,這意味著該功能依賴于另一個(gè)范圍。這將很快變得混亂?!钡艺f的是基本的“INIT”。我基本上define但使用vars-這在技術(shù)上是錯(cuò)誤的。但是您的函數(shù)不依賴于任何東西-而是一個(gè)var的名稱。$db你能記住嗎?它確實(shí)是全球需要使用的$db,這里的依賴項(xiàng)在哪里,否則如何使用它?P.S.我剛想到,我們正面臨著兩種不同思想的沖突,例如:水雷(但不太了解面向?qū)ο蟮木幊?和那些在OOP中可以被稱為大師(從我目前的觀點(diǎn)來看)的人-對(duì)他們來說顯而易見的事情-出現(xiàn)了新的問題。我想這就是為什么這個(gè)問題被一遍又一遍地問下去的原因。就我個(gè)人而言,它畢竟變得更清楚了,但仍然有一些事情需要澄清。
查看完整描述

3 回答

?
犯罪嫌疑人X

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

我用一門課解決了這個(gè)問題:

class Config{
    public static $SiteName = 'My Cool Site';}function SomeFunction{
    echo 'Welcome to ' , Config::$SiteName;}

Fcortes關(guān)于使用常量的建議也是一個(gè)很好的建議。我只想建議給所有常量一個(gè)前綴,比如CFG_SITE_NAME,因此,為了避免名稱與其他常量發(fā)生意外沖突。


查看完整回答
反對(duì) 回復(fù) 2019-06-24
?
有只小跳蛙

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

對(duì)于您的情況,我將創(chuàng)建一個(gè)唯一的文件constants.php帶著定義(如果您的目的是這些“變量”在執(zhí)行時(shí)間內(nèi)永遠(yuǎn)不會(huì)更改):

define('SITE_NAME','site name');define('BASE_PATH','/home/docs/public_html/');...

包括這個(gè)constants.php在您需要它的所有文件中:

include_once('constants.php');


查看完整回答
反對(duì) 回復(fù) 2019-06-24
  • 3 回答
  • 0 關(guān)注
  • 665 瀏覽

添加回答

舉報(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)