时间:2021-07-01 10:21:17 帮助过:6人阅读
对于 C++ 你的问题是通过函数的重载实现的
但是 php 并不支持重载(因为web开发不需要弄的那么复杂),但 php 提供了参数的缺省来变通
因此可以通过检查实际传入的个数来决定流程的走向
但你把参数由 ABCDE 改为 ADEF 是不可取的
因为原来按 ABCDE 调用的部分都将发上歧义
对于 C++ 你的问题是通过函数的重载实现的
但是 php 并不支持重载(因为web开发不需要弄的那么复杂),但 php 提供了参数的缺省来变通
因此可以通过检查实际传入的个数来决定流程的走向
但你把参数由 ABCDE 改为 ADEF 是不可取的
因为原来按 ABCDE 调用的部分都将发上歧义
换个说法就是比如本来要用户的年龄,性别,地区,XX,YY...,但某天项目需求一变又说不要性别和地区了,然后加个签名吧...
假设方法就是setUserInfo
那么设置用户信息这个调用点可能会在用户资料修改,后台对前台用户资料的修改,或者用户通过其它接口操作修改部分信息中调用,现在如果不改这个方法的参数表,请问我该怎么办?开多个新方法,setUserInfo2?但是其它调用点还是要修改调用的参数名和参数表
一般不去涉及数据集合的细节
比如用户信息就是 {用户id,年龄,性别,地区,等等} 的集合,而用户id就可唯一识别该用户
又比如 {年龄,性别,地区} 是一个过滤集合,而 {年龄,签名} 是另一个过滤集合
所以你只需要传递需要的过滤集合编号就使程序变得通用了
而维护这些集合的技术就是:数据字典