Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 帮助向函数传递参数_Php_Function_Tags - Fatal编程技术网

Php 帮助向函数传递参数

Php 帮助向函数传递参数,php,function,tags,Php,Function,Tags,当我只想传递tag参数,让其他参数默认时,我该如何编写 我试过了,但没用 function get_tags_by_criteria($gender="%", $min_age_of_birth="%", $max_age_of_birth="%", $country="%", $region="%", $city="%", $tag="") { 这在PHP中是不可能的。这在PHP中是不可能的。将标记参数放在第一位: get_tags_by_criteria("", "", "", "

当我只想传递tag参数,让其他参数默认时,我该如何编写

我试过了,但没用

function get_tags_by_criteria($gender="%", $min_age_of_birth="%", $max_age_of_birth="%", $country="%", $region="%", $city="%", $tag="") {

这在PHP中是不可能的。

这在PHP中是不可能的。

将标记参数放在第一位:

    get_tags_by_criteria("", "", "", "", "", "", computer);
这样称呼它:

function get_tags_by_criteria($tag="", $gender="%", $min_age_of_birth="%", $max_age_of_birth="%", $country="%", $region="%", $city="%") 

将标记参数放在第一位:

    get_tags_by_criteria("", "", "", "", "", "", computer);
这样称呼它:

function get_tags_by_criteria($tag="", $gender="%", $min_age_of_birth="%", $max_age_of_birth="%", $country="%", $region="%", $city="%") 

不幸的是,您不能这样做-未指定的可选参数始终必须位于函数参数列表的末尾。相反,您可以对不希望指定的参数使用NULL,然后让函数检查参数是否为NULL,并将其指定为默认值。

不幸的是,您不能这样做-未指定的可选参数始终必须位于函数参数列表的末尾。相反,您可以对不希望指定的参数使用NULL,然后让函数检查参数是否为NULL,并将其指定为默认值。

PHP中没有传递命名参数。一般来说,如果您有超过4个参数,其中许多参数是可选的,那么您可能需要考虑使用数组或对象来代替:

get_tags_by_criteria(computer);

您可以使用对象来显式设置允许的参数。

PHP中没有传递命名参数。一般来说,如果您有超过4个参数,其中许多参数是可选的,那么您可能需要考虑使用数组或对象来代替:

get_tags_by_criteria(computer);

您可以使用对象来显式设置允许的参数。

您可以使用关联数组模拟命名参数:

function get_tags_by_criteria($args) {
  ...
}

get_tags_by_criteria(array('gender' => 'M', 'tag' => 'php'));
然后打电话

function my_function($options)
 {
  extract($options);
 }
这一点,再加上健壮的检查和函数中的默认值表,对我来说非常有用

缺点:没有phpDoc约定来记录参数,您的IDE将无法在键入时向您显示可用参数。您必须将可用参数输入到
@desc
块中,根据您的IDE,该块可能好看,也可能不好看


一种解决方法是声明函数中的所有参数,但使除第一个参数外的所有参数都是可选的。第一个可以是包含值的关联数组。

您可以使用关联数组模拟命名参数:

function get_tags_by_criteria($args) {
  ...
}

get_tags_by_criteria(array('gender' => 'M', 'tag' => 'php'));
然后打电话

function my_function($options)
 {
  extract($options);
 }
这一点,再加上健壮的检查和函数中的默认值表,对我来说非常有用

缺点:没有phpDoc约定来记录参数,您的IDE将无法在键入时向您显示可用参数。您必须将可用参数输入到
@desc
块中,根据您的IDE,该块可能好看,也可能不好看


一种解决方法是声明函数中的所有参数,但使除第一个参数外的所有参数都是可选的。第一个可以是包含值的关联数组。

CakePHP框架通常使用关联数组来指定一组选项。它甚至允许您指定单个参数或关联数组。请参见模型类上的示例

以下是我试图使您的功能更灵活的尝试:

my_function(array("parameter1" => "value1", "parameter2" => "value2"));


CakePHP框架通常使用关联数组来指定一组选项。它甚至允许您指定单个参数或关联数组。请参见模型类上的示例

以下是我试图使您的功能更灵活的尝试:

my_function(array("parameter1" => "value1", "parameter2" => "value2"));


我应该如何做才能获得相同的效果,即选择要传递的参数和要使用默认值的参数?我不想为此创建7个不同的函数。很抱歉,创建7个不同的函数是唯一的选择,不过OOP可能会对您有所帮助。我应该如何做才能获得相同的效果,选择要传递的参数和要使用默认值的参数?我不想为此创建7个不同的函数。很抱歉,创建7个不同的函数是唯一的选择,OOP可能会在这里帮助您。回答很好,null或任何其他值。任何随机值都可以工作,是的,但我倾向于选择NULL,因为它不太可能与您可能希望传递的任何实际非默认值重叠。:)回答得很好,空值或任何其他值。任何随机值都可以,是的,但我倾向于使用空值,因为它不太可能与您可能希望传递的任何实际非默认值重叠。:)您可以在此处阅读有关
extract
的更多信息:您可以在此处阅读有关
extract
的更多信息: