看板 PHP 關於我們 聯絡資訊
※ 引述《buganini (霸格尼尼)》之銘言: : 有點難懂 : 我想 你的意思是 有['conf']的是舊帳號 沒有的是新帳號? : 如果區分新舊帳號的判定規則是這樣的話 那unset就可以偽造新帳號 我要偽造出新帳號 據以測試程式中可能出現什麼問題 而且我希望看到問題發生 : 前面unset掉了 後面當然沒有basic這個index : 難不成你們是 : $dev['name'] = $data['basic']['name']; : if(empty($dev['name'])){ : //old account : }else{ : //new account : } : 這樣判斷新舊帳號!? 我沒有必要判斷,而是希望看到問題冒出來 你說 "後面當然沒有basic這個index" 這是對的;我不是不懂,而是我希望得到一個錯誤訊息,據以證明我找到同一個問題了 而問題是,並沒有冒出 NOTICE 當你知道有 BUG,但卻沒顯示錯誤訊息時 那也是一種麻煩 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.219.65.16
buganini :所以到底是有unset會有NOTICE還是相反? 07/24 19:47
buganini :有unset的話應該$data = &$dev['conf'];就要噴錯了 07/24 19:49
HuangJC :所以你想法和我一樣;事實上有 unset 不會有 NOTICE 07/24 19:51
HuangJC :但如果改成 echo $dev['conf'] 是有警告的,這 OK 07/24 19:54
HuangJC :在 $data=&dev.... 這行後再去 echo 呢?又沒 NOTICE 了 07/24 19:55
※ 編輯: HuangJC 來自: 61.219.65.16 (07/24 19:55)
HuangJC :也就是說, & 運算疑似把不存在的變數,變存在了.. 07/24 19:56
HuangJC :不過幸好 isset 的判斷還是正確的 07/24 19:58
buganini :所以 其實跟unset沒有關係? 是&的錯? 07/24 20:07
HuangJC :unset 不是程式的一部份,是我模擬測試需求.. 07/24 20:07
HuangJC :真正的新帳號會有錯誤訊息;而模擬的不會有!! 07/24 20:08
buganini :呃 所以說是你模擬的不夠精確.. 07/24 20:10
buganini :也不是unset的錯 &的行為php.net也有寫 07/24 20:10
buganini :http://0rz.tw/LbTeT 07/24 20:10
buganini :Note: If you assign, pass, or return an undefined 07/24 20:11
buganini :variable by reference, it will get created. 07/24 20:11
HuangJC :沒錯,就是這樣;QA是堅持實測的單位,RD則不能經常如此 07/24 20:13
HuangJC :所以我也不打算模擬了,繼續找更真實的測試方法.. 07/24 20:14
HuangJC :抱歉浪費大家時間了 Orz 07/24 20:15
HuangJC :對了,真的刪除並重建帳號後,又幫同事抓到一個 BUG 07/24 20:17
HuangJC :就是'舊帳號還可存取',酷 XD;但 DB 裏真的刪了 07/24 20:18
HuangJC :原來是同事寫了 cache,而 cache 沒清..一堆地雷~ 07/24 20:18
<?php $data=null; $dev['name'] = $data['basic']['name']; ?> 算了算了,這樣都沒警告 自己小心點 *_* ※ 編輯: HuangJC 來自: 61.219.65.16 (07/24 20:27)
lausai :有人知道為什麼上面的寫法不會有警告嗎? 蠻好奇的@@ 07/25 02:10