PHP函数参数的传递和使用是怎样的
Admin 2022-10-09 群英技术资讯 750 次浏览
这篇文章给大家分享的是“PHP函数参数的传递和使用是怎样的”,对大家学习和理解有一定的参考价值和帮助,有这方面学习需要的朋友,接下来就跟随小编一起学习一下吧。通过参数列表可以传递信息到函数,即以逗号作为分隔符的表达式列表。参数是从左向右求值的。
PHP 支持按值传递参数(默认),通过引用传递参数以及默认参数。也支持可变长度参数列表,更多信息参见 func_num_args(), func_get_arg() 以及 func_get_args()。
Example #1 向函数传递数组
<?php
function takes_array($input)
echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}
?>
默认情况下,函数参数通过值传递(因而即使在函数内部改变参数的值,它并不会改变函数外部的值)。如果希望允许函数修改它的参数值,必须通过引用传递参数。 如果想要函数的一个参数总是通过引用传递,可以在函数定义中该参数的前面加上符号 &:
Example #2 用引用传递函数参数
<?php
function add_some_extra(&$string)
{
$string .= 'and something extra.';
}
$str = 'This is a string, ';add_some_extra($str);
echo $str; // outputs 'This is a string, and something extra.'
?>
函数可以定义 C++ 风格的标量参数默认值,如下所示:
Example #3 在函数中使用默认参数
<?php
function makecoffee($type = "cappuccino")
{
return "Making a cup of $type.\n";
}
echo makecoffee();
echo makecoffee(null);
echo makecoffee("espresso");
?> 以上例程会输出:
Making a cup of cappuccino. Making a cup of . Making a cup of espresso.
PHP 还允许使用数组 array 和特殊类型 NULL 作为默认参数,例如:
Example #4 使用非标量类型作为默认参数
<?php
function makecoffee($types = array("cappuccino"), $coffeeMaker = NULL)
{
$device = is_null($coffeeMaker) ? "hands" : $coffeeMaker;
return "Making a cup of ".join(", ", $types)." with $device.\n";
}
echo makecoffee();
echo makecoffee(array("cappuccino", "lavazza"), "teapot");
?>
默认值必须是常量表达式,不能是诸如变量,类成员,或者函数调用等。
注意当使用默认参数时,任何默认参数必须放在任何非默认参数的右侧;否则,函数将不会按照预期的情况工作。考虑下面的代码片断:
Example #5 函数默认参数的不正确用法
<?php
function makeyogurt($type = "acidophilus", $flavour){
return "Making a bowl of $type $flavour.\n";
}
echo makeyogurt("raspberry"); // won't work as expected
?>
以上例程会输出:
Warning: Missing argument 2 in call to makeyogurt() in /usr/local/etc/httpd/htdocs/phptest/functest.html on line 41 Making a bowl of raspberry .
现在,比较上面的例子和这个例子:
Example #6 函数默认参数正确的用法
<?php
function makeyogurt($flavour, $type = "acidophilus"){
return "Making a bowl of $type $flavour.\n";
}
echo makeyogurt("raspberry"); // works as expected
?>
以上例程会输出:
Making a bowl of acidophilus raspberry.
Note: 自 PHP 5 起,默认值可以通过引用传递。
PHP 在用户自定义函数中支持可变数量的参数列表。其实很简单,只需使用 func_num_args(), func_get_arg(),和 func_get_args() 函数即可。
可变参数并不需要特别的语法,参数列表仍按函数定义的方式传递给函数,并按通常的方式使用这些参数。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
php连接mysql数据库的三种方式:1、原生方式连接;2、通过mysqli扩展连接;3、通过pdo扩展连接。
下面由phpstorm教程栏目给大家介绍phpstorm中无法配置deployment的问题的解决方法,希望对需要的朋友有所帮助!正常情况deployment在tools下面...
这篇文章主要给大家介绍了关于如何破解PHP单继承魔咒的相关资料,Trait 是为类似 php 的单继承语言而准备的一种代码复用机制,文中通过图文以及实例代码介绍的非常详细,需要的朋友可以参考下
对初学PHP的人来说,empty()和isset()的用法区别很难搞清楚。针对这个问题,这篇文章就主要给大家介绍一下empty()和isset()的判断变量区别是什么,有这方面学习需求的朋友可以看一下。
swoole 1.7.9增加了内置的WebSocket服务器支持,如使用此命令:$server = new Swoole\WebSocket\Server("0.0.0.0", 9501);。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008