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

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

如何避免isset()和empty()

如何避免isset()和empty()

PHP
三國(guó)紛爭(zhēng) 2019-09-19 15:24:42
我有幾個(gè)較舊的應(yīng)用程序,當(dāng)在E_NOTICE錯(cuò)誤級(jí)別上運(yùn)行時(shí)會(huì)拋出大量“xyz未定義”和“未定義的偏移”消息,因?yàn)闆](méi)有使用isset()和consorts 顯式檢查變量的存在。我正在考慮通過(guò)它們來(lái)使它們與E_NOTICE兼容,因?yàn)殛P(guān)于缺失變量或偏移的通知可以是救生員,可能會(huì)獲得一些微小的性能改進(jìn),并且它總體上更清潔。但是,我不喜歡對(duì)我的代碼造成數(shù)百isset() empty()和array_key_exists()s的影響。它變得臃腫,變得不那么可讀,沒(méi)有在價(jià)值或意義上獲得任何東西。如何在沒(méi)有過(guò)多變量檢查的情況下構(gòu)建代碼,同時(shí)還兼容E_NOTICE?
查看完整描述

3 回答

?
拉風(fēng)的咖菲貓

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

只需為此編寫一個(gè)函數(shù)。就像是:


function get_string($array, $index, $default = null) {

    if (isset($array[$index]) && strlen($value = trim($array[$index])) > 0) {

        return get_magic_quotes_gpc() ? stripslashes($value) : $value;

    } else {

        return $default;

    }

}

你可以用作


$username = get_string($_POST, 'username');

做同樣的瑣碎的東西一樣get_number(),get_boolean(),get_array()等等。


查看完整回答
反對(duì) 回復(fù) 2019-09-19
?
蕪湖不蕪

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

我相信解決這個(gè)問(wèn)題的最佳方法之一是通過(guò)類訪問(wèn)GET和POST(COOKIE,SESSION等)數(shù)組的值。


為每個(gè)數(shù)組創(chuàng)建一個(gè)類,聲明__get和__set方法(重載)。__get接受一個(gè)參數(shù),它將是一個(gè)值的名稱。此方法應(yīng)使用isset()或檢查相應(yīng)全局?jǐn)?shù)組中的此值,empty()如果存在,則返回該值,否則返回null(或某些其他默認(rèn)值)。


之后,您可以以這種方式自信地訪問(wèn)數(shù)組值:$POST->username如果需要,可以在不使用任何isset()s或empty()s的情況下進(jìn)行任何驗(yàn)證。如果username在相應(yīng)的全局?jǐn)?shù)組中不存在null則將返回,因此不會(huì)生成警告或通知。


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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