Re: [請益] class和function

看板PHP作者 (人生啊!)時間11年前 (2012/09/05 15:12), 編輯推噓5(5038)
留言43則, 12人參與, 最新討論串3/5 (看更多)
※ 引述《yororu (人生啊!)》之銘言: : 我一向寫程式都是用function 去做 : 第一點是因為我覺得class的語法對我 : 而言是蠻不熟悉了.. : 看語法能懂..但是要自己去寫就覺得本 : 來用function 可以幾行就做到的東西.. : 卻要寫那麼長覺得不喜歡... : 然後我在某網站也看到 : http://www.phpv.net/html/1453.html : 執行速度慢很多 : 所以真的不知道在php裡用class的優點在那裡.. : 還有最近在學很多MVC架構的東西(ex:Codeigniter).. : 也是覺得明明幾個function 就可以做出來.. : 好像要去理解那麼冗長的class和程序 : 然後執行速度很差 : 不知道有沒有人能夠反駁我的想法呢?? 我舉一個例子.. 在網路上都可以下載到用MVC模組做的CRM系統 然後我在看它的程式的時候.. 明明就用一行就可以OK的東西..(要做select資料庫的動作) 他就要建一個class 放fuction. 如下: function SelectDB($dbName) { $this->database = $dbName; $this->databaseName = $dbName; if ($this->_connectionID) { return mysql_select_db($dbName,$this->_connectionID); }else{ return false; } } 然後其他程式裡有一行如下 if ($argDatabasename) return $this->SelectDB($argDatabasename); 然後不知道為什麼...走到這行就出錯.. 我在那裡debug很久... 最後乾脆全刪除用一行 mysql_select_db($dbName,$this->_connectionID); 就都OK了.. 我不曉得到底用mvc建構為什麼要寫的這麼複雜???? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.61.150.138 ※ 編輯: yororu 來自: 210.61.150.138 (09/05 15:15)

09/05 15:23, , 1F
因為網路上下載的MVC架構,不是只有給你一個人用
09/05 15:23, 1F

09/05 15:24, , 2F
obj.database, obj.databaseName 其它人都可能會用到
09/05 15:24, 2F

09/05 15:24, , 3F
這是為了彈性、以及後續變動、維護的代價
09/05 15:24, 3F

09/05 15:24, , 4F
很多情況下,不是能乾脆全刪除這麼簡單
09/05 15:24, 4F

09/05 15:26, , 5F
你自己手刻MVC,也一樣可以刻得很精簡
09/05 15:26, 5F

09/05 15:27, , 6F
你要寫出來給大家用時,就是要符合各種人的需求
09/05 15:27, 6F

09/05 15:29, , 7F
說來話長..... 我對這個可是有切身之痛 = =
09/05 15:29, 7F

09/05 15:30, , 8F
推一個說來話長…有點想回可是我好懶…(掩面
09/05 15:30, 8F

09/05 15:43, , 9F
反正等他想改版,爆個一次就會學乖了
09/05 15:43, 9F

09/05 15:52, , 10F
都在要求別人要寫完美的給你?那你有沒有寫完美的給人家?
09/05 15:52, 10F

09/05 15:52, , 11F
#1DRRPqjl 突然想到我寫過這麼一個莫名其妙的東西
09/05 15:52, 11F

09/05 15:53, , 12F
何況你說你對class的寫法「蠻不熟悉」......
09/05 15:53, 12F

09/05 15:53, , 13F
試問不熟悉的話為什麼不先弄懂再來討論後續的問題?
09/05 15:53, 13F
我並不是要求別人寫完美的給我.. 我只是在想..到網路去下載CRM改和乾脆自己寫那個比較好?? 還有如果自己寫的話需要用到class嗎???還是說儘量少用效率會比較好呢?? ※ 編輯: yororu 來自: 210.61.150.138 (09/05 16:12)

09/05 16:48, , 14F
你要自己判斷這段程式未來會不會重複使用或是會不會改
09/05 16:48, 14F

09/05 16:48, , 15F
只用一次的程式碼話寫ㄧ行收工很好阿
09/05 16:48, 15F

09/05 17:12, , 16F
所以你以為只要單純處理資料庫運作,不用先過濾?
09/05 17:12, 16F

09/05 17:12, , 17F
還是你期望所有的過濾機制都是靠自己一個一個刻出來?
09/05 17:12, 17F

09/05 17:12, , 18F
然後就不打算有效的重覆使用?
09/05 17:12, 18F

09/05 17:13, , 19F
呃…樓上冷靜一點 = =
09/05 17:13, 19F

09/05 17:14, , 20F
另外就是你知道重覆使用物件的屬性~~~~
09/05 17:14, 20F

09/05 17:14, , 21F
有時可以在很多地方套用相同的資料來源而不用重LOAD
09/05 17:14, 21F

09/05 17:14, , 22F
版主!我很冷靜!不用太擔心。
09/05 17:14, 22F

09/05 17:14, , 23F
這問題好像和物件導向沒什麼關係?
09/05 17:14, 23F

09/05 17:15, , 24F
我只是認為對class不瞭解就說他不好這件事,感觸很深。
09/05 17:15, 24F

09/05 17:16, , 25F
要說某件事不好,通常是有很深的體會才說得出口的。
09/05 17:16, 25F

09/05 21:01, , 26F
...... class在哪裡?沒看到呀?
09/05 21:01, 26F

09/05 21:36, , 27F
樓上,他的function是被包在class中,只是沒寫完整而已
09/05 21:36, 27F

09/05 23:00, , 28F
自己刻+1, 邊刻邊學習...刻下去才會知道世界是如此的遼闊~
09/05 23:00, 28F

09/06 00:15, , 29F
當以後想偷懶時,你就會自然而然跳到class,現在多說無益
09/06 00:15, 29F

09/06 00:17, , 30F
你可以研究一下別人提供的class,如果是你寫不用class會不
09/06 00:17, 30F

09/06 00:18, , 31F
會比較好用或好寫好維護,這種是要用經驗和時間去體會的
09/06 00:18, 31F

09/06 11:00, , 32F
我想,如果妳的程式是射後不理 那就別class了
09/06 11:00, 32F

09/06 11:26, , 33F
射後部裡的確用不著這種東西
09/06 11:26, 33F

09/06 17:30, , 34F
我們公司接的案子都是一般的中小企業網站..要做的東西不是
09/06 17:30, 34F

09/06 17:31, , 35F
很多..都單純是一般網頁客戶意見最新消息還有一些他們要求
09/06 17:31, 35F

09/06 17:33, , 36F
的功能...我做過大概10幾20個網站..大部份都維護2~3年,也有
09/06 17:33, 36F

09/06 17:34, , 37F
超過5年的..這些網站如果要去用frame做開發起來會很慢..我
09/06 17:34, 37F

09/06 17:35, , 38F
一開始就是用class去寫..後來一直改..本來以為可以重覆使用
09/06 17:35, 38F

09/06 17:36, , 39F
後來一改再改變得愈來愈寵大..我才放棄那種方法.
09/06 17:36, 39F

09/06 17:37, , 40F
改成寫幾支每個網站可能會用到的function 放同一個php裡.當
09/06 17:37, 40F

09/06 17:38, , 41F
要建新網站時直接copy過去..然後也是很快就建好..
09/06 17:38, 41F

09/06 17:40, , 42F
是否我寫的案子都不夠大所以不用使用mvc架構或class呢?
09/06 17:40, 42F

09/06 20:43, , 43F
這問題在於…你是做網站?還是有系統的網站?
09/06 20:43, 43F
文章代碼(AID): #1GHljgbz (PHP)
討論串 (同標題文章)
文章代碼(AID): #1GHljgbz (PHP)