作者sunlights (sunlights)
看板PHP
標題[請益] PHP 有多型嗎?
時間Tue Jun 21 20:04:53 2016
想問一下
學過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://webptt.com/m.aspx?n=bbs/PHP/M.1466510698.A.396.html
1F:推 storyn26383: 中文翻譯容易誤會,PHP 沒有 overloading,但是有 po 06/22 00:45
2F:→ storyn26383: lymorphism 06/22 00:45
3F:→ sunlights: 但是文章上他們是寫PHP的多型真的是多型嗎? 06/22 13:26
如下
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
4F:→ MOONRAKER: 阿就一個user在google上找到一段 誰講的也不知道 06/22 16:30
5F:→ MOONRAKER: 這樣你就把他奉為聖經了? 06/22 16:31
6F:→ MOONRAKER: 還有你知道stackoverflow的格式嗎?你看到那一塊是他的 06/22 16:31
7F:→ MOONRAKER: 「提問」 別人的「回答」在下面 06/22 16:31
8F:→ MOONRAKER: 底下人家給了一大堆答案 有code有實做 有聲有色 06/22 16:32
9F:→ MOONRAKER: 然後你都不看 只看到說「他這樣問 所以應該是這樣」 06/22 16:32
10F:→ MOONRAKER: 那根本不需要問嘛 你自己都想好了不是嗎 06/22 16:33
11F:→ MOONRAKER: weak typing有他自己的規則 不要用java那套亂想 06/22 16:36
12F:→ gname: 推樓上.. .不要把 JAVA 套進來... 06/23 15:33
13F:→ kyleJ: OOP的術語翻成中文總是很令人混淆 但你說的那個不是 06/24 12:13
14F:→ kyleJ: Override也不是Overload 是宣告父類別的變數可以參考到子 06/24 12:13
15F:→ kyleJ: 類別 是強型別下才會出現的情況 PHP哪管你誰繼承了誰 用$ 06/24 12:13
16F:→ kyleJ: 開頭的變數你愛裝什麼值或參考去哪個物件都可以 06/24 12:17
17F:→ dlikeayu: 樓上最後一段說的不太正確,PHP開發者和framework開發者 06/28 22:10
18F:→ dlikeayu: 現在都是為了效能瓶頸在往型別方面做強化優化 06/28 22:11
19F:→ dlikeayu: 當然你可以按PHP7之前的作法,把這些型別判斷丟給php 06/28 22:12
20F:→ dlikeayu: serve 去處理,但是在意機器成本的公司可能就不是這麼一 06/28 22:13
22F:推 ej04cj86: interface & abstract class. 能用interface就別用abs 07/17 21:14
23F:→ ej04cj86: 因為比較貴, 除非你的abstract class有init function 07/17 21:15