Mik*_*e K 12 php parameter-passing
如果有两个类扩展相同的基类,并且需要使其中一个类覆盖一个函数来获取另一个参数.在任何一个类上调用函数时总是传递附加参数是否可以?
一些伪代码来帮助演示......
如果我们有3个类和函数
我有这三个中的一个的实例,我可以调用$ instance.doSomething($ input)
我想 - 发生的是foo和foo_subclass_one会忽略附加参数,而foo_subclass_two会使用它.它是否正确?如果我有很多子类并且真的想避免触及10个以上的文件,我有更好的方法吗?
谢谢!
有两种方法可以做到这一点:
扩展方法以使用默认参数:
public function doSomething($input=null) {}
Run Code Online (Sandbox Code Playgroud)
请注意,即使未使用,您也需要对所有实例执行此操作.
在这种情况下,您可能希望使用方法的arguments数组:
public function doSomething() {
$args = func_get_args();
if (isset($args[0])) { $this->doSomethingElse();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6151 次 |
| 最近记录: |