php 没有重载,PHP 不支持重载
(引自:互联网)
问:
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 不支持重载相关推荐
- python 为什么没有重载_python是否支持重载
在一些静态语言中,大都存在有一个重载的概念.这是在OOP(面对对象编程)中一个必不可少的一个行为. 所谓重载,就是多个相同函数名的函数,根据传入的参数个数,参数类型而执行不同的功能.所以函数重载实质上 ...
- go函数详解:函数定义、形参、返回值定义规范、函数内存分析、不支持重载、支持可变参数、基本数据类型和数组默认都是值传递的、支持自定义数据类型、函数返回值命名
引入 [1]为什么要使用函数: 提高代码的复用型,减少代码的冗余,代码的维护性也提高了 [2]函数的定义: 为完成某一功能的程序指令(语句)的集合,称为函数. [3]基本语法 func 函数名(形参列 ...
- Golang中函数不支持重载
Golang中函数不支持重载
- 自写sort排序函数(支持重载排序规则)
最近有点浮躁,无心练题,便捣鼓了一阵子的C++.接触了一点点的重载和模板后,心血来潮想写一点牛逼点的东西.因为平时打编程比赛要排序的地方都是直接用的C++中自带的sort排序函数,就想自己也写一个 ...
- 27、Python 面向对象(创建类、创建实例对象、访问属性、内置类属性、对象销毁、类的继承、方法重写、基础重载方法、运算符重载、类属性与方法、下划线双下划线)
27Python面向对象(Python2) Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. ...
- C# 重载 Equals() 方法、重载运算符、声明显隐式转换的简要整理
自动生成 可以使用 JetBrains ReSharper 的代码生成功能来自动生成各种结构性的或可重载的成员,而不必自行手写,因为非常麻烦且易错. 如确需手写,可参考本文. 引用类型和值类型 本文不 ...
- 运算符重载之友元运算符重载
友元可以参考:https://blog.csdn.net/aaqian1/article/details/84427884 友元运算符重载函数: 把运算符重载函数定义为某个类的友元函数. 1.定义友元 ...
- c++重载(以运算符重载为主)
重载(OverLoading)是面向对象程序设计多态性的一种体现.所谓重载,是指"同一标识符"在同一作用域的不同场合具有不同的语义,这个标识符可以是函数名或运算符.也就是说,重载可 ...
- C++可重载运算符和不可重载运算符
可重载运算符: 不可重载运算符:
最新文章
- xcode 8 重新支持插件
- Structs2实现文件上传功能
- 如何找出应用程序未使用绑定变量
- Linux代理后网页显示问题,项目部署到linux后出现的两个问题
- [JavaScript编程练习]js获取文字中的100,使其变为红色,若文字100改为其他任意数字,该数字依然会是红色
- 战争尾声(nowcoder 215073)
- 由马化腾谈“微博修改功能”,看什么是优秀的产品经理
- 台式机dp接口_精品导购:你想要的商务台式机 都在这里了!
- 抖音发布2020数据报告:日均视频搜索量破4亿,70后最爱发表情包
- 成为java gc专家_成为JavaGC专家上(2)—如何监控Java垃圾回收机制
- Linux 命令(61)—— ldd 命令
- javascript Prototype constructor的理解(一)
- 程序员新入手MacStudio的装机环境
- linux debian安装字体,Debian安装/设置笔记(字体设置)
- 笔记本计算机在桌面显示,笔记本电脑显示桌面图标怎么样设置
- JZOJ100047. 【NOIP2017提高A组模拟7.14】基因变异
- 笔记本 - 常用快捷键 word 笔记
- 科技幻想(一)——便捷人机交互
- WCF 之 什么是WCF
- 1682亿!!阿里工程师如何喝着茶创造双11奇迹?
热门文章
- R语言使用table1包绘制(生成)三线表、使用双变量分列构建三线表、双变量分列三线表
- 文件服务器数据归档,数字化转型之数据清理与归档
- 谢和平院士的毕业致辞
- 天下数据推荐六款实用的服务器管理软件
- php语言里阿拉伯数字,阿拉伯数字转中文数字思路及解决算法(以PHP语言描述)...
- 关于计算机类期刊投稿心得
- Unity中VR开发渲染出现问题,左右眼渲染不同
- AIDA64应用新处理器下半年将首次亮相,核心和性能成为最大亮点 ...
- win10安装MySQL步骤与问题解决方法
- 超级战墙伤害计算机制,《我的世界》超级战墙玩法心得分享