本週是學習php的最後一週了,我也基本把教程看完了,整個下來感受就是剛開始很慢,到後來就會好不少,可是,雖然看到了後面,前面可能仍是會有點毛病,就好比最近看教程的時候忽然發現了一個問題。php
在某天學習的時候我忽然想起來有一次個人一個寫條件的代碼沒有按照教程本來順的來,爲了圖省事就直接把另外一段代碼加到本來代碼的末尾了(條件和本來的順序相反),運行結果也不同來着,當時也沒太大意,由於畢竟沒有報錯,後來就想着改爲和教程輸出同樣的結果,就想着直接把false改爲true,由於比較省事,可是,出事了!
在數據添加成功的前提下,無論if中是true仍是false只要增長成功在else下面那麼返回的結果就是咱們所期待的,可是增長成功若是和增長失敗的語句更換一下順序,那麼就會一直顯示新增失敗,但數據是增長成功的,這就奇了怪了,到底爲啥呢,說實話我盯這段代碼足足二十來分鐘,沒有報錯,說明語法正確,拼寫也爭取,但就是否是預期,因爲之前我一直認爲===與==等號是同樣的效果,可是我仍是刪了一個等號想再確認一下我認爲的是否是正確的,可是,結果符合預期了這讓我很驚喜,後來查了一下三個等號與兩個等號的區別,先舉個列子:
好比你一個函數會返回這幾種狀況:
一、大於0的數
二、小於0的數
三、等於0的數(也就是0啦)
四、False(失敗時)
這時候若是你想捕獲失敗的狀況,你就必須用===,而不能用== ,而且三個等號表明比較對象的類型也要一致。兩個等號表示只要值相等就知足條件。
由於==除了會匹配第4種狀況外,還會匹配第3種狀況,由於0也是假!
而由於此時result是一個值,===不匹配第三種狀況,因此就出現了所述問題。segmentfault
另外一個問題就是在條件執行語句同樣可是true和false不同時,刷新insert界面的結果不一樣,可是執行語句順序調換true和false同樣時,刷新insert界面的結果也不一樣,能夠分兩組看,當刷新insert界面時,頁面執行了一遍insert的代碼,此時保存失敗result爲false,也就沒有id,因此纔會出現所示結果。
由於剛開始一直覺得save()執行失敗返回的是0因此就一直搞不懂爲何,在網上查了一下才知道,若是前臺數據沒改變返回0,改變則返回改變的那個行數,失敗的話返回的即是false了。函數
經過此次的錯誤,我又一次地長了記性,當下問題當下解決,由於若是不當下解決,會一直糊塗,問題雖是麻煩的,可是當下解決的感受倒是很舒服啊,拖一時一時爽,可是一直拖不會一直爽。
下週就開始作項目了,相對本身也相對團隊說,加油,咱們很棒!nice!
本文保留全部權利,版權歸[河北工業大學夢雲智軟件開發團隊]
本文做者:陳麗婷學習