php有多态吗

php有多态吗

一、什么是多态

多态其实就是根据参数不同而执行不同的方法。

二、php中的多态

多态的概念一般是强类型语言来谈的,因为强类型语言它必须要声明参数类型,比如一个手电筒对象的打开方法其参数申明了只能是蓝光,就不能传其他光。但可以用父类渲染的方式使其多态,比如声明一个光的父类,让其它颜色的光都继承自这个光的父类,申明其参数为父类光,然后传光的任何子类都可以,这就是强类型的多态。

但php是弱类型的动态语言,不检测参数类型,传什么都可以;但在php5.3版本可以声明参数为某对象;当声明参数为某类实例化后的对象时,就得用父类渲染的方式令其多态;

立即学习“PHP免费学习笔记(深入)”;

三、php多态的理解

php是面向对象的脚本语言,而我们都知道,面向对象的语言具有三大特性:封装,继承,多态。php理应具有这三大特性。

封装是类的构建过程,php具有;php也具有继承的特性。唯独这个多态,php体现的十分模糊。原因是php是弱类型语言。

java的多态体现的十分清晰,大体分两类:父类引用指向子类对象;接口引用指向实现接口的类对象。java声明变量时都要给变量设定类型,所以存在什么父类引用和接口引用。而php则没有这点体现,php声明变量不需要给变量设定类型,一个变量可以指向不同的数据类型。所以,php不具有像java一样的多态。

php不具有像java那种清晰的多态,不是代表php不具有多态性。看下面一个例子:

abstract class animal{    abstract function fun();}class cat extends animal{    function fun(){        echo "cat say miaomiao...";    }}class dog extends animal{    function fun(){        echo "dog say wangwang...";    }}function work($obj){    if($obj instanceof animal){        $obj -> fun();    }else{        echo "no function";    }}work(new dog()); work(new cat());

登录后复制

上边的类是抽象类,也表明了接口与实现接口的类对象同样可以适用。

推荐教程:PHP视频教程

以上就是php有多态吗的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2522889.html

(0)
上一篇 2025年3月5日 17:33:39
下一篇 2025年2月27日 12:44:23

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • php有多线程吗

    php 默认并不支持多线程,要使用多线程需要安装 pthread 扩展,而要安装 pthread 扩展,必须使用 –enable-maintainer-zts 参数重新编译 php,这个参数是指定编译 php 时使用线程安全方式…

    2025年3月5日
    200
  • php有哪些关键词

    任何php开发人员在使用面向对象构建web应用程序时,都需要掌握6个关键字,他们分别是: Private Private是访问控制的最核心部分,因此,在类中被定义成Private的属性(变量)或方法只能在该类内部访问,该类的任何实例(对象)…

    2025年3月5日
    200
  • php有哪些特点

    php(php: hypertext preprocessor的缩写,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了c语言、java和 perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于web开发领域。 PHP语言…

    2025年3月5日
    200
  • php有哪些运行环境

    1、nginx + swoole swoole是一个异步、并行、高性能的网络通信引擎,使用纯C语言编写,提供了php语言的异步多线程服务器。swoole内置了http/websocket服务器端和客户端,http2.0服务器端,支持类似Go…

    2025年3月5日
    200
  • php二次开发做些啥

    什么是二次开发? 二次开发,简单的说就是在现有的软件上进行定制修改,功能的扩展,然后达到自己想要的功能和效果,一般来说都不会改变原有系统的内核。 (推荐学习:PHP视频教程) 为什么要二次开发? 随着信息化技术的不断发展,IT行业涌现出了一…

    2025年3月5日
    200
  • php动态网站开发是什么

    《php动态网站开发》是2015年清华大学出版社出版的图书,作者是唐四薪。本书系统地介绍了php的核心原理与应用技术,在叙述有关原理时安排了大量的相关实例。 动态网站的开发与实施涉及范围极其广泛、研究时间长、过程发展复杂,本身就是一个需要经…

    2025年3月5日
    200
  • PHP与C语言的语法有什么不同

    php与c语言的语法有什么不同? PHP的基本语法和C是很相似的,可以说大部分编程语言的基本语法都是如出一辙的:顺序、选择(if)、循环(while)。不同之处有变量定义,还有实现的具体细节。 但是,php主要是部署网站用的,所以大部分时候…

    2025年3月5日
    200
  • php动态二维码如何生成

    我们可以使用phpqrcode这个现成的类文件,php二维码生成类库,利用它可以轻松生成二维码,二维码是动态的,不用生成图片,可自定义二维码大小,间隙,跳转地址等。 phpqrcode生成动态二维码简单实例 参数设置: (推荐学习:PHP视…

    2025年3月5日
    200
  • php与html区别

    php与html区别 HTML是超文本标记语言;PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。 HTML主要用在客户端的显示,比如我们浏览的网页,特别是静态…

    2025年3月5日
    200
  • php的集成开发环境哪个好

    主流的php集成开发环境 (integrated development environment 以下均简称为 ide) 大概有十几种,比如:zend studio,phpstorm,eclipse,netbeans,dreamweaver…

    2025年3月5日
    200

发表回复

登录后才能评论