一个动作的多个功能?

 fdasfwgafaweg 发布于 2023-02-10 10:37

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

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

我这样使用:

newFile('myfolder', 'myfile.txt');

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

newFile('myfile.txt') inFolder('myfolder');

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

我也可以用这个:

newFile('myfile.txt')->inFolder('myfolder');

Shoe.. 5

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

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

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

newFile(array(
    'folder' => 'myfolder',
    'file' => 'myfile.txt'
));

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

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

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

    function newFile($params){
        fopen($params['folder']."/".$params['file'], 'w');
    }
    
    newFile(array(
        'folder' => 'myfolder',
        'file' => 'myfile.txt'
    ));
    

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

    2023-02-10 10:39 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有