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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為foreach()提供的無效參數(shù)

為foreach()提供的無效參數(shù)

PHP
翻翻過去那場雪 2019-06-03 10:11:40
為foreach()提供的無效參數(shù)我經(jīng)常遇到這樣的情況:處理數(shù)據(jù),這些數(shù)據(jù)既可以是數(shù)組,也可以是空變量,并提供一些foreach用這些數(shù)據(jù)。$values = get_values();foreach ($values as $value){   ...}當您用非數(shù)組的數(shù)據(jù)填充外匯時,您會得到一個警告:警告:為[.]中的foreach()提供的無效參數(shù)假設(shè)不可能重構(gòu)get_values()函數(shù)要始終返回數(shù)組(向后兼容性,而不是可用的源代碼,無論其他原因如何),我想知道哪種方法是避免這些警告的最干凈和最有效的方法:鑄造$values數(shù)組初始化$values數(shù)組包扎foreach帶著if其他(請建議)
查看完整描述

4 回答

?
喵喵時光機

TA貢獻1846條經(jīng)驗 獲得超7個贊

就我個人而言,我發(fā)現(xiàn)這是最干凈的-不確定這是否是最有效的,頭腦!

if (is_array($values) || is_object($values)){
    foreach ($values as $value)
    {
        ...
    }}

我選擇的原因是,當您開始沒有什么東西的時候,它不會分配空數(shù)組。


查看完整回答
反對 回復(fù) 2019-06-03
?
郎朗坤

TA貢獻1921條經(jīng)驗 獲得超9個贊

這個怎么樣?很多清潔劑和所有的單線。

foreach ((array) $items as $item) {
 // ...
 }


查看完整回答
反對 回復(fù) 2019-06-03
?
largeQ

TA貢獻2039條經(jīng)驗 獲得超8個贊

請不要依賴鑄造作為解決方案。盡管其他人認為這是防止錯誤的有效選項,但它可能會導(dǎo)致另一個錯誤。

注意:如果您期望返回特定形式的數(shù)組,則可能會失敗。這需要更多的檢查。

例如:將布爾值轉(zhuǎn)換為數(shù)組(array)bool威爾結(jié)果是一個空數(shù)組,但是一個包含布爾值作為int的元素的數(shù)組:[0=>0][0=>1].

我寫了一個快速測試來提出這個問題。..(這里有一個備份測試如果第一個測試url失敗了。)

包括對以下方面的測試:nullfalsetrue..class..arrayundefined.


在使用之前,一定要測試您的輸入。建議:

  1. 快速類型檢查$array = is_array($var) or is_object($var) ? $var : [] ;

  2. 類型暗示陣列

    在使用foreach和

    指定返回類型

  3. 包扎
  4. 使用

    try{}catch(){}

    砌塊
  5. 在產(chǎn)品發(fā)布前設(shè)計適當?shù)拇a/測試
  6. 要根據(jù)適當?shù)母袷綔y試數(shù)組,可以使用

    array_key_exists

    在特定的鑰匙上,

    或者測試數(shù)組的深度(當它是一個!).

  7. 始終將助手方法解壓縮到全局命名空間中,以減少重復(fù)代碼。


查看完整回答
反對 回復(fù) 2019-06-03
  • 4 回答
  • 0 關(guān)注
  • 1287 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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