一个动作的多个功能?

Lig*_*ltϟ 0 php file function

我目前在PHP中有这个代码:

public function newFile($folder, $file){
    fopen($folder."/".$file, 'w');
}
Run Code Online (Sandbox Code Playgroud)

我这样使用:

newFile('myfolder', 'myfile.txt');
Run Code Online (Sandbox Code Playgroud)

它工作正常,但我想知道是否可以创建一个我可以这样使用的函数:

newFile('myfile.txt') inFolder('myfolder');
Run Code Online (Sandbox Code Playgroud)

如果有可能,我怎么能这样做?

我也可以用这个:

newFile('myfile.txt')->inFolder('myfolder');
Run Code Online (Sandbox Code Playgroud)

Sho*_*hoe 5

我可以看到你正在尝试实现类似Objective-C和类似语言的语法,但不幸的是,你做不到.只是习惯了PHP语法.

您可以使用数组来获取命名参数:

function newFile($params){
    fopen($params['folder']."/".$params['file'], 'w');
}

newFile(array(
    'folder' => 'myfolder',
    'file' => 'myfile.txt'
));
Run Code Online (Sandbox Code Playgroud)

或者你可以使用代理来获得如下语法:newFile(...)->inFolder(...)但是这肯定是一种过度杀伤力.

  • @ Me123,按照其他答案.但我强烈建议你不要这样做.没有什么比这更复杂了. (2认同)
  • @ Me123您的客户*是否真的想要使用复杂,模糊且极有可能拖延更多资源的解决方案而不是简单优雅的解决方案? (2认同)