如何将(可选)参数传递给用户定义的函数?

发布于 2024-11-04 10:39:12 字数 764 浏览 1 评论 0原文

我的意思是,如何将参数传递给函数?

您的用户函数调用是否如下所示:

$this->getSomeNumber($firstArg, $secondArg, null);

或者您是否检测到传递给函数的参数数量然后执行工作?

我想知道是否有任何编码风格涵盖这一点。其他编程语言如何处理这个问题?

更新

那些不明白的人的例子:

function doSmth($firstArgument) {
    if(func_num_args() > 1) {
        //do job if second argument was passed
    }
}

第二个例子:

function doSmthElse($firstArgument, $secondArgument) {
    if($secondArgument) {
        //do job if second argument was passed
    }
}

然后你这样称呼它:

doSmth($var, $secondvar) or doSmth($var)

//**OR**

doSmthElse($var, $secondvar) or doSmthElse($var, null)

哪个更好用?我的意思是其他程序员对你的期望是什么?

I mean, how do you pass your arguments to a function?

Do your user function call looks like this:

$this->getSomeNumber($firstArg, $secondArg, null);

or do you detect how many arguments was passed to the function and then do the job?

I wonder if is there any coding style covering this. And how do other programming languages handle this?

UPDATE

Example fot those, who not understand:

function doSmth($firstArgument) {
    if(func_num_args() > 1) {
        //do job if second argument was passed
    }
}

Second example:

function doSmthElse($firstArgument, $secondArgument) {
    if($secondArgument) {
        //do job if second argument was passed
    }
}

And then you call it like:

doSmth($var, $secondvar) or doSmth($var)

//**OR**

doSmthElse($var, $secondvar) or doSmthElse($var, null)

Which is better to use? I mean which do other programmers expect from you?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

屋顶上的小猫咪 2024-11-11 10:39:12

如果参数是可选,通常使用默认值指定它:

function foo($requiredArg, $optionalArg = null)

如果函数采用多个可选参数,请像上面的示例一样显式指定它们。

如果函数采用可变数量的参数(例如,sprintf) ,然后使用 func_get_args &公司

/**
 * Specify here as a comment that this function takes a variable amount of args
 */
function doSomethingWithParameters() {
    ...
}

如果函数采用必需的参数和可变数量的参数,则适用相同的方法:像第一个示例一样显式指定始终必需的参数。

使用注释来阐明变量参数等始终是一个好主意。使用数组可能是一个更好的主意,但这可能取决于您正在做什么。

If the argument is optional, specify it normally with a default value:

function foo($requiredArg, $optionalArg = null)

If the function takes multiple optional arguments, specify them explicitly like in the above example.

If the function takes a variable number of arguments (for example, such as sprintf), then use func_get_args & co.

/**
 * Specify here as a comment that this function takes a variable amount of args
 */
function doSomethingWithParameters() {
    ...
}

If the function takes required parameters and a variable amount of parameters, the same approach applies: Specify always required parameters explicitly like in the first example.

Using comments to clarify variable args etc. is always a good idea. It might be an even better idea to use an array instead, but this would probably depend on what you're doing.

感受沵的脚步 2024-11-11 10:39:12

你想要在这些参数之前加上美元符号:

$this->getSomeNumber($firstArg, $secondArg, null);

但是如果你真的想知道如何在 php 中使用可变数量的参数,请参阅帮助中的 func_num_args 和 func_get_args 。

You want dollar signs before those args:

$this->getSomeNumber($firstArg, $secondArg, null);

But if you're really asking about how to use variable numbers of arguments in php, see func_num_args and func_get_args in the help.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文