錯誤1:foreach迴圈後留下懸掛指標 在foreach迴圈中,如果我們需要更改迭代的元素或是為了提高效率,運用引用是乙個好辦法: $arr = array(1,2,3,4); foreach($arr as&$value) // $arr is now array(2, 4, 6, 8) 這裡有個問題很多人會迷糊。
錯誤1:foreach迴圈後留下懸掛指標
在foreach迴圈中,如果我們需要更改迭代的元素或是為了提高效率,運用引用是乙個好辦法:
$arr=array(1,2,3,4);
foreach($arras&$value)// by reference
echoimplode(',',$array),"\n";
foreach($arrayas$value){}// by value (i.e., copy)
echoimplode(',',$array),"\n";
上面**的執行結果如下:
1,2,3
1,2,3
1,2,2
你猜對了嗎?為什麼是這個結果呢?
我們來分析下。第乙個迴圈過後,$value是陣列中最後乙個元素的引用。第二個迴圈開始:
第一步:複製$arr[0]到$value(注意此時$value是$arr[2]的引用),這時陣列變成[1,2,1]
第二步:複製$arr[1]到$value,這時陣列變成[1,2,2]
第三步:複製$arr[2]到$value,這時陣列變成[1,2,2]
綜上,最終結果就是1,2,2
避免這種錯誤最好的辦法就是在迴圈後立即用unset函式銷毀變數:
$arr=array(1,2,3,4);
foreach($arras&$value)),
// php
var_dump($_post);
你會很驚奇的發現,結果是下面所示:
array(0){}
為什麼是這樣的結果呢?我們的json資料 哪去了呢?
// php
$_post=json_decode(file_get_contents('php://input'),true);
此時,我們再去輸出$_post變數,則會得到我們期望的輸出:
array(2)
錯誤8:認為php支援字元資料型別
看看下面的**,猜測下會輸出什麼:
for($c='a';$c<='z';$c++)()/path/to/test.php:0
因此,對於 empty() 函式,我們要小心的使用,要不然的話就會結果出乎意料,甚至潛在的誤導你。
網際網路+時代,時刻要保持學習,攜手千鋒php,dream
it possible。
總結最常見的10種錯誤鏈結
眾所周之鏈結建設是乙個非常重要的優化活動,但這絕不意味著你可以不惜一切代價建立鏈結?因為鏈結建設不僅要花費大量的時間,又時候花費的還是金錢。有許多常見的鏈結建設的錯誤,今天夢就給大家舉出最常見的一些 1檢查反向有nofollow?屬性 nofollow 是乙個用於指示某些搜尋引擎的超連結不應影響搜尋...
電氣設計軟體中最常見的10個錯誤
設計早期的裝置名稱重複,元件之間交叉引用的斷開鏈結以及耗時的元件生成,這些只是在低質量cad軟體中生成電氣設計時發生的一些令人頭疼的錯誤。這些花費大量時間修復的錯誤只是冰山一角。本文將深入 所有電氣工程師最終遇到的災難。只是為了好玩,讓我們把它作為電氣設計軟體中最常見的10個錯誤。1.塊只是不更新設...
最常見的http錯誤
5.http 401錯誤 未經授權 訪問者試圖訪問受限頁面但未經授權時,返回http 401錯誤。錯誤登入嘗試是導致這一錯誤的主因。web伺服器通過返回http 400錯誤告訴訪問者,訪問者用來訪問 的程式出錯,或訪問請求途中遭到破壞。403錯誤類似於401錯誤,不同之處在於401錯誤是未經授權,而...