(引自:互联网)

问:

sb('shabi');

sb('shabi','bisha');

function sb($a) {

echo $a;

}

function sb($a,$b) {

echo $a.$b;

}

function sb($a,$b,$c) {

echo $a.$b.$c;

}

?>

Fatal error: Cannot redeclare sb() (previously declared in

D:\www\test1.php:5) in D:\www\test1.php on line 10

还是我写的不对?

______________________________________________________________________________________________

答1:

php4暂时不支持

______________________________________________________________________________________________

答2:

你这样是不行的

php不支持函数的重载,以后也不会支持

在oop中,函数的重载有两个条件

1、参数的个数不同——php支持参数缺省,无法用参数个数区别

2、参数的类型不同——php是弱类型语言,会根据上下文自动做类型转换

所以,php不可能支持函数的重载

你可以这样定义函数

function sb($a,$b="",$c="") {

echo $a.$b.$c;

}

______________________________________________________________________________________________

答3:

看看CU的精华帖:

“很多人说php4不能支持函数重载”

http://www.chinaunix.net/jh/27/189443.html

呵呵,虽然并不是真正意义上的重载,但是接口的对外表达形式和重载是一样的。

______________________________________________________________________________________________

答4:

to mikespook(Mike大懒猫)

非常遗憾,那位帖主把概念弄混了。

同是function定义,在过程你称作“函数”,在类里称作“方法”。

尽管php的类支持方法的重载,但同样不能在一个类定义中定义两个同名的方法

class x {

function aa($a,$b) {}

function aa($a) {}

}

______________________________________________________________________________________________

答5:

呵呵~~~

我不说了么:“虽然并不是真正意义上的重载,但是接口的对外表达形式和重载是一样的。”

虽然 class x不能定义两个同名的方法~~~但是使用这篇帖子的方法在类的对外接口上是和重载一样的~~~~

只不过定义了一个方法而已~~

但是在传递进不同个数的参数的时候调用了不同的方法~~~~

本文来自: 站长(http://www.qqcf.com)

详细出处参考:http://study.qqcf.com/web/722/275504.htm

php 没有重载,PHP 不支持重载相关推荐

  1. python 为什么没有重载_python是否支持重载

    在一些静态语言中,大都存在有一个重载的概念.这是在OOP(面对对象编程)中一个必不可少的一个行为. 所谓重载,就是多个相同函数名的函数,根据传入的参数个数,参数类型而执行不同的功能.所以函数重载实质上 ...

  2. go函数详解:函数定义、形参、返回值定义规范、函数内存分析、不支持重载、支持可变参数、基本数据类型和数组默认都是值传递的、支持自定义数据类型、函数返回值命名

    引入 [1]为什么要使用函数: 提高代码的复用型,减少代码的冗余,代码的维护性也提高了 [2]函数的定义: 为完成某一功能的程序指令(语句)的集合,称为函数. [3]基本语法 func 函数名(形参列 ...

  3. Golang中函数不支持重载

    Golang中函数不支持重载

  4. 自写sort排序函数(支持重载排序规则)

      最近有点浮躁,无心练题,便捣鼓了一阵子的C++.接触了一点点的重载和模板后,心血来潮想写一点牛逼点的东西.因为平时打编程比赛要排序的地方都是直接用的C++中自带的sort排序函数,就想自己也写一个 ...

  5. 27、Python 面向对象(创建类、创建实例对象、访问属性、内置类属性、对象销毁、类的继承、方法重写、基础重载方法、运算符重载、类属性与方法、下划线双下划线)

    27Python面向对象(Python2) Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. ...

  6. C# 重载 Equals() 方法、重载运算符、声明显隐式转换的简要整理

    自动生成 可以使用 JetBrains ReSharper 的代码生成功能来自动生成各种结构性的或可重载的成员,而不必自行手写,因为非常麻烦且易错. 如确需手写,可参考本文. 引用类型和值类型 本文不 ...

  7. 运算符重载之友元运算符重载

    友元可以参考:https://blog.csdn.net/aaqian1/article/details/84427884 友元运算符重载函数: 把运算符重载函数定义为某个类的友元函数. 1.定义友元 ...

  8. c++重载(以运算符重载为主)

    重载(OverLoading)是面向对象程序设计多态性的一种体现.所谓重载,是指"同一标识符"在同一作用域的不同场合具有不同的语义,这个标识符可以是函数名或运算符.也就是说,重载可 ...

  9. C++可重载运算符和不可重载运算符

    可重载运算符: 不可重载运算符:

最新文章

  1. xcode 8 重新支持插件
  2. Structs2实现文件上传功能
  3. 如何找出应用程序未使用绑定变量
  4. Linux代理后网页显示问题,项目部署到linux后出现的两个问题
  5. [JavaScript编程练习]js获取文字中的100,使其变为红色,若文字100改为其他任意数字,该数字依然会是红色
  6. 战争尾声(nowcoder 215073)
  7. 由马化腾谈“微博修改功能”,看什么是优秀的产品经理
  8. 台式机dp接口_精品导购:你想要的商务台式机 都在这里了!
  9. 抖音发布2020数据报告:日均视频搜索量破4亿,70后最爱发表情包
  10. 成为java gc专家_成为JavaGC专家上(2)—如何监控Java垃圾回收机制
  11. Linux 命令(61)—— ldd 命令
  12. javascript Prototype constructor的理解(一)
  13. 程序员新入手MacStudio的装机环境
  14. linux debian安装字体,Debian安装/设置笔记(字体设置)
  15. 笔记本计算机在桌面显示,笔记本电脑显示桌面图标怎么样设置
  16. JZOJ100047. 【NOIP2017提高A组模拟7.14】基因变异
  17. 笔记本 - 常用快捷键 word 笔记
  18. 科技幻想(一)——便捷人机交互
  19. WCF 之 什么是WCF
  20. 1682亿!!阿里工程师如何喝着茶创造双11奇迹?

热门文章

  1. R语言使用table1包绘制(生成)三线表、使用双变量分列构建三线表、双变量分列三线表
  2. 文件服务器数据归档,数字化转型之数据清理与归档
  3. 谢和平院士的毕业致辞
  4. 天下数据推荐六款实用的服务器管理软件
  5. php语言里阿拉伯数字,阿拉伯数字转中文数字思路及解决算法(以PHP语言描述)...
  6. 关于计算机类期刊投稿心得
  7. Unity中VR开发渲染出现问题,左右眼渲染不同
  8. AIDA64应用新处理器下半年将首次亮相,核心和性能成为最大亮点 ...
  9. win10安装MySQL步骤与问题解决方法
  10. 超级战墙伤害计算机制,《我的世界》超级战墙玩法心得分享