PHP 程式設計中 10 個最常見的錯誤,你犯過幾個?

2022-07-25 11:48:09 字數 1324 閱讀 9110

錯誤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錯誤是未經授權,而...