[請益] PHP 有多型嗎?

看板PHP作者 (sunlights)時間9年前 (2016/06/21 20:04), 9年前編輯推噓2(2021)
留言23則, 7人參與, 最新討論串1/1
想問一下 學過JAVA 多型老師是這樣說的 母類別 Animal 子類別 Dog 如果寫 Animal aa = new Dog (); 這樣叫多型 可是PHP在new 時並沒有宣告 是子類別還母類別 如 $aa = new Dog(); 只有在function 裡傳遞參數時會寫出 如 public function putout(Animal $obj) { .... } 所以所以我覺得多型並不是大量使用.. 但在網路上查到很多PHP的多型都是指實作.. 除了 http://0rz.tw/WNuo7 敍述PHP沒有多型 到底上面的文章寫的對嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 58.114.1.218 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1466510698.A.396.html

06/22 00:45, , 1F
中文翻譯容易誤會,PHP 沒有 overloading,但是有 po
06/22 00:45, 1F

06/22 00:45, , 2F
lymorphism
06/22 00:45, 2F

06/22 13:26, , 3F
但是文章上他們是寫PHP的多型真的是多型嗎?
06/22 13:26, 3F
如下 Is what seems like polymorphism in PHP really polymorphism? 然後回答是 I should note that in PHP the polymorphism isn't quite the way it should be. I mean that it does work, but since we have a weak datatype, its not correct. 在PHP裡多型並不是多型應有的樣子..我是指它的確可以運作,但沒有明確的型態 這並不正確 ※ 編輯: sunlights (58.114.1.218), 06/22/2016 13:30:55

06/22 16:30, , 4F
阿就一個user在google上找到一段 誰講的也不知道
06/22 16:30, 4F

06/22 16:31, , 5F
這樣你就把他奉為聖經了?
06/22 16:31, 5F

06/22 16:31, , 6F
還有你知道stackoverflow的格式嗎?你看到那一塊是他的
06/22 16:31, 6F

06/22 16:31, , 7F
「提問」 別人的「回答」在下面
06/22 16:31, 7F

06/22 16:32, , 8F
底下人家給了一大堆答案 有code有實做 有聲有色
06/22 16:32, 8F

06/22 16:32, , 9F
然後你都不看 只看到說「他這樣問 所以應該是這樣」
06/22 16:32, 9F

06/22 16:33, , 10F
那根本不需要問嘛 你自己都想好了不是嗎
06/22 16:33, 10F

06/22 16:36, , 11F
weak typing有他自己的規則 不要用java那套亂想
06/22 16:36, 11F

06/23 15:33, , 12F
推樓上.. .不要把 JAVA 套進來...
06/23 15:33, 12F

06/24 12:13, , 13F
OOP的術語翻成中文總是很令人混淆 但你說的那個不是
06/24 12:13, 13F

06/24 12:13, , 14F
Override也不是Overload 是宣告父類別的變數可以參考到子
06/24 12:13, 14F

06/24 12:13, , 15F
類別 是強型別下才會出現的情況 PHP哪管你誰繼承了誰 用$
06/24 12:13, 15F

06/24 12:17, , 16F
開頭的變數你愛裝什麼值或參考去哪個物件都可以
06/24 12:17, 16F

06/28 22:10, , 17F
樓上最後一段說的不太正確,PHP開發者和framework開發者
06/28 22:10, 17F

06/28 22:11, , 18F
現在都是為了效能瓶頸在往型別方面做強化優化
06/28 22:11, 18F

06/28 22:12, , 19F
當然你可以按PHP7之前的作法,把這些型別判斷丟給php
06/28 22:12, 19F

06/28 22:13, , 20F
serve 去處理,但是在意機器成本的公司可能就不是這麼一
06/28 22:13, 20F

06/28 22:13, , 21F
06/28 22:13, 21F

07/17 21:14, , 22F
interface & abstract class. 能用interface就別用abs
07/17 21:14, 22F

07/17 21:15, , 23F
因為比較貴, 除非你的abstract class有init function
07/17 21:15, 23F
文章代碼(AID): #1NQIrgEM (PHP)
文章代碼(AID): #1NQIrgEM (PHP)