PHP Optional Parameters - specify parameter value by name?

后端 未结 4 1347

I know it is possible to use optional arguments as follows:

function doSomething($do, $something = \"something\") {

}

doSomething(\"do\");
doSomething(\"do         


        
4条回答
  •  猫巷女王i
    2020-12-02 00:53

    No, in PHP that is not possible as of writing. Use array arguments:

    function doSomething($arguments = array()) {
        // set defaults
        $arguments = array_merge(array(
            "argument" => "default value", 
        ), $arguments); 
    
        var_dump($arguments);
    }
    

    Example usage:

    doSomething(); // with all defaults, or:
    doSomething(array("argument" => "other value"));
    

    When changing an existing method:

    //function doSomething($bar, $baz) {
    function   doSomething($bar, $baz, $arguments = array()) {
        // $bar and $baz remain in place, old code works
    }
    

提交回复
热议问题