[請益] 新手請問一小片段程式

看板PHP作者 (Dan)時間15年前 (2010/02/10 14:46), 編輯推噓13(13059)
留言72則, 11人參與, 最新討論串1/8 (看更多)
我是初學自修的新手,想嘗試拿別人的程式解讀... 剛開始還能翻書或上網搜尋查找指令或函數意義 但最近遇到一小段程式,我真的沒辦法,只好上來求教... foreach($data as $k=>$v){ $$k=$v; } 第一行 foreach($data as $k=>$v) 我是知道 但第二行 $$k=$v; 是什麼意思? 請幫幫忙! 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.250.229.251

02/10 14:47, , 1F
架設$k的內容是'lala' $$k就是$lala
02/10 14:47, 1F

02/10 14:47, , 2F
02/10 14:47, 2F

02/10 14:48, , 3F
這個code不是很好 變數全部撒在外面 而且
02/10 14:48, 3F

02/10 14:48, , 4F
而且要確定$k符合變數命名規則
02/10 14:48, 4F

02/10 15:06, , 5F
感謝b大! 我懂了
02/10 15:06, 5F

02/10 16:35, , 6F
這是一個壞的用法 XD
02/10 16:35, 6F

02/10 17:37, , 7F
變數的變數
02/10 17:37, 7F

02/10 18:26, , 8F
程式沒有所謂好的壞的用法。而是因地制宜而用。
02/10 18:26, 8F

02/10 18:28, , 9F
這個用法通常是用來選擇變數或函數
02/10 18:28, 9F

02/10 18:28, , 10F
另外變數命名有時不該去省略(或許是你找到的範例是如此。)
02/10 18:28, 10F

02/10 18:29, , 11F
是我的話一定是寫 $key => $value 這樣簡單明瞭又清楚。
02/10 18:29, 11F

02/10 20:24, , 12F
我自己用的倒是蠻常寫foreach( as $k=>$v) 的..
02/10 20:24, 12F

02/10 20:24, , 13F
還有$t $i $j 不過都有固定用途啦
02/10 20:24, 13F

02/11 09:33, , 14F
良好的變數命名會讓接手的工程師容易閱讀。
02/11 09:33, 14F

02/11 09:34, , 15F
就算是自己維護也更容易知道那是什麼(尤其是一年後再改)
02/11 09:34, 15F

02/11 10:18, , 16F
感覺不管命名什麼,程式註解才是重點 @@
02/11 10:18, 16F

02/11 11:34, , 17F
這是一個有很多顧忌的用法,所以說他是壞的用法
02/11 11:34, 17F

02/11 11:35, , 18F
看來tk先生是從來不考慮這種用法的危險性所以才那麼輕鬆
02/11 11:35, 18F

02/11 11:36, , 19F
常常看到一些老的程式裡有人這樣來引入form變數
02/11 11:36, 19F

02/11 11:36, , 20F
那麼我有兩個表單,裡面都有變數叫username
02/11 11:36, 20F

02/11 11:36, , 21F
用這種方式引入時會發生什麼事?請問tk先生可有想過?
02/11 11:36, 21F

02/11 11:37, , 22F
唱高調的人真多。
02/11 11:37, 22F

02/11 12:14, , 23F
所以我說「因地制宜而用」。moonraker您太激動了!
02/11 12:14, 23F

02/11 12:17, , 24F
程式註解一點都不重要。敏捷開發甚至告訴你不該去寫註解。
02/11 12:17, 24F

02/11 12:25, , 25F
天阿! 誰跟你說註解不重要... 暈倒
02/11 12:25, 25F

02/11 12:35, , 26F
外國人說的!敏捷軟體開發方法說的!
02/11 12:35, 26F

02/11 12:36, , 27F
只要變數命名原則夠清楚,程式的架構明白。
02/11 12:36, 27F

02/11 12:36, , 28F
註解根本就是多餘的。
02/11 12:36, 28F

02/11 12:37, , 29F
最多只有程式最開頭告訴你這支程式要幹嘛!
02/11 12:37, 29F

02/11 12:37, , 30F
其他的部份根本沒有加註解的必要。
02/11 12:37, 30F

02/11 12:51, , 31F
註解寫得多,那就是打字打得多。寫程式的時間變少。
02/11 12:51, 31F

02/11 12:51, , 32F
而且……註解寫的再好,如果程式架構亂七八糟。
02/11 12:51, 32F

02/11 12:51, , 33F
一樣難以維護及修改。
02/11 12:51, 33F

02/11 17:12, , 34F
註解還是很有用啦~至少我可以用中文打些附註事項
02/11 17:12, 34F

02/11 18:45, , 35F
tk大指的是變數要像這樣嗎? $tmp_get_db_fetch_count
02/11 18:45, 35F

02/11 18:45, , 36F
之類的吧...
02/11 18:45, 36F

02/11 18:47, , 37F
不註解還看得懂 大概程式碼全部要重看吧...
02/11 18:47, 37F

02/13 09:59, , 38F
沒有註解的話,不用多,五千行的程式就好,你覺得要花多久
02/13 09:59, 38F

02/13 09:59, , 39F
一個剛接手的人才能看懂這五千行到底在做甚麼?
02/13 09:59, 39F

02/13 09:59, , 40F
說不定重寫一個還比較快 這樣真的有節省時間?
02/13 09:59, 40F

02/13 21:59, , 41F
測試code會告訴你他測試的函式功能是做什麼的!
02/13 21:59, 41F

02/13 22:00, , 42F
了解測式code對函式的好處的話!比看5000行的註解還快。
02/13 22:00, 42F

02/13 22:00, , 43F
講測試code也不對,應該是說測試的表單。
02/13 22:00, 43F

02/13 22:01, , 44F
因為測試的表單會指出每個程式函式是做什麼樣的功能。
02/13 22:01, 44F

02/13 22:01, , 45F
簡單來說!能用電腦幫我們找資料,為什麼要用人腦去做?
02/13 22:01, 45F

02/13 22:02, , 46F
不在程式中寫註解,不代表我不能把功能為何寫在別的地方。
02/13 22:02, 46F

02/13 22:03, , 47F
如果我們的函式功能出來就像是一條列試的清單。
02/13 22:03, 47F

02/13 22:03, , 48F
是不是就可以從清單去了解他所代表的函式的功能?
02/13 22:03, 48F

02/13 22:04, , 49F
所以並非「不寫註解」,而是有「絕佳的」替代方案。
02/13 22:04, 49F

02/14 19:52, , 50F
別傻了 通常是要找程式BUG或嵌入新功能才要去看舊CODE
02/14 19:52, 50F

02/14 19:52, , 51F
既然是當初就沒想到的東西 你覺得測試CODE會有寫到嗎?
02/14 19:52, 51F

02/14 19:53, , 52F
今天老闆不會沒事要新人去了解舊CODE怎麼寫而已
02/14 19:53, 52F

02/14 19:54, , 53F
通常都是為了加新功能或除BUG 這時如果只有程式使用說明
02/14 19:54, 53F

02/14 19:54, , 54F
要想把BUG找出來,或想找出該從哪段著手改寫程式
02/14 19:54, 54F

02/14 19:55, , 55F
得花上非常多的時間精力才行
02/14 19:55, 55F

02/15 00:53, , 56F
所以我也建議asklove來參加敏捷軟體課程。
02/15 00:53, 56F

02/15 00:53, , 57F
我還是那句話:聽我說!不如聽資深的專家怎麼說。
02/15 00:53, 57F

02/15 00:54, , 58F
專家會告訴你:電腦明明能做的事,幹嘛要用人腦去做?
02/15 00:54, 58F

02/15 00:55, , 59F
如果大家都還不能跳脫用「眼睛」看程式的話。
02/15 00:55, 59F

02/15 00:55, , 60F
那就是每天下午15:30喝下午茶或是加班加到死二種結果。
02/15 00:55, 60F

02/15 00:56, , 61F
我覺得沒親耳聽過,或是親眼看到專業人士的程式編寫方式前
02/15 00:56, 61F

02/15 00:56, , 62F
不需要太早去下定論,當然如果你的年資有20年的話另當別論
02/15 00:56, 62F

02/15 00:58, , 63F
那位講師的抱負倒也不是什麼胸懷大志!不過就是:
02/15 00:58, 63F

02/15 00:58, , 64F
提高程式設計師的工作以及生活的品質及身體的健康。
02/15 00:58, 64F

02/15 01:00, , 65F
那位講師讓我見到曾經連想都沒想過卻非常迅速有效而確實的
02/15 01:00, 65F

02/15 01:00, , 66F
開發程式。相信是因為親眼所見所聞而非空談理論。
02/15 01:00, 66F

02/15 01:02, , 67F
去看看人家憑什麼敢簽下:超過交件期最少賠簽約金20倍。
02/15 01:02, 67F

02/15 01:02, , 68F
但是卻從來沒有賠過任何一次的專案。
02/15 01:02, 68F

02/15 01:03, , 69F
假如他所談的東西非實際經驗而是理論的話早就賠光家產了。
02/15 01:03, 69F


02/16 12:35, , 71F
很棒的一個關於test unit對軟體品質控制的文章。
02/16 12:35, 71F

02/16 20:52, , 72F
我覺得這段程式碼,可以簡單的用extract函數取代@.@
02/16 20:52, 72F
文章代碼(AID): #1BSbOfa3 (PHP)
討論串 (同標題文章)
文章代碼(AID): #1BSbOfa3 (PHP)