[请益] PHP 有多型吗?

楼主: sunlights (sunlights)   2016-06-21 20:04:53
想问一下
学过JAVA
多型老师是这样说的
母类别 Animal
子类别 Dog
如果写 Animal aa = new Dog ();
这样叫多型
可是PHP在new 时并没有宣告 是子类别还母类别
如 $aa = new Dog();
只有在function 里传递参数时会写出

public function putout(Animal $obj) {
....
}
所以所以我觉得多型并不是大量使用..
但在网络上查到很多PHP的多型都是指实作..
除了
http://0rz.tw/WNuo7
敍述PHP没有多型
到底上面的文章写的对吗?
作者: storyn26383 (贩卖机)   2016-06-22 00:45:00
中文翻译容易误会,PHP 没有 overloading,但是有 polymorphism
楼主: sunlights (sunlights)   2016-06-22 13:26:00
但是文章上他们是写PHP的多型真的是多型吗?
作者: MOONRAKER (㊣牛鹤鳗毛人)   2016-06-22 16:30:00
阿就一个user在google上找到一段 谁讲的也不知道这样你就把他奉为圣经了?还有你知道stackoverflow的格式吗?你看到那一块是他的“提问” 别人的“回答”在下面底下人家给了一大堆答案 有code有实做 有声有色然后你都不看 只看到说“他这样问 所以应该是这样”那根本不需要问嘛 你自己都想好了不是吗weak typing有他自己的规则 不要用java那套乱想
作者: gname ((′口‵)↗︴<><...<><)   2016-06-23 15:33:00
推楼上.. .不要把 JAVA 套进来...
作者: kyleJ (资工人)   2016-06-24 12:13:00
OOP的术语翻成中文总是很令人混淆 但你说的那个不是Override也不是Overload 是宣告父类别的变量可以参考到子类别 是强型别下才会出现的情况 PHP哪管你谁继承了谁 用$开头的变量你爱装什么值或参考去哪个物件都可以
作者: dlikeayu (太阳拳vs野球拳)   2016-06-28 22:10:00
楼上最后一段说的不太正确,PHP开发者和framework开发者现在都是为了效能瓶颈在往型别方面做强化优化当然你可以按PHP7之前的作法,把这些型别判断丢给phpserve 去处理,但是在意机器成本的公司可能就不是这么一回事了 https://wiki.php.net/rfc/return_types
作者: ej04cj86 (Swaglicious)   2016-07-17 21:14:00
interface & abstract class. 能用interface就别用abs因为比较贵, 除非你的abstract class有init function

Links booklink

Contact Us: admin [ a t ] ucptt.com